1.电话拨号器(隐式意图)
<!-- 首页Activity -->
public class MainActivity extends Activity {
private EditText phoneEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
phoneEditText = (EditText) findViewById(R.id.et_phone);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void click1(View view) {
String phone = phoneEditText.getText().toString();
// 创建隐式意图(参数1:action名字,第二个参数是Uri对象)
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));
// 开启意图
this.startActivity(intent);
}
}
<!-- 首页布局activity_main.xml -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/et_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入电话号码" />
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拨打电话"
android:layout_below="@+id/et_phone"
android:onClick="click1"/>
</RelativeLayout>
2.计算器(显式意图)putExtra通过String传递数据和通过对象传递数据
<!-- 首页Activity -->
public class MainActivity1 extends Activity {
private EditText value1EditText;
private EditText symbolEditText;
private EditText value2EditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
value1EditText = (EditText) findViewById(R.id.et_value1);
symbolEditText = (EditText) findViewById(R.id.et_symbol);
value2EditText = (EditText) findViewById(R.id.et_value2);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void calculation(View view) {
deal1();
}
// 通过字符串的方式传输数据
public void deal() {
String value1 = value1EditText.getText().toString();
String symbol = symbolEditText.getText().toString();
String value2 = value2EditText.getText().toString();
// 需要跳转到Activity
Intent intent = new Intent(this, CalculationResultActivity.class);
intent.putExtra("value1", value1);
intent.putExtra("symbol", symbol);
intent.putExtra("value2", value2);
this.startActivity(intent);
}
// 通过对象的方式传输数据
public void deal1() {
String value1 = value1EditText.getText().toString();
String symbol = symbolEditText.getText().toString();
String value2 = value2EditText.getText().toString();
// 需要跳转到Activity
Intent intent = new Intent(this, CalculationResultActivity.class);
CalculationBean calculationBean = new CalculationBean();
calculationBean.setValue1(value1);
calculationBean.setSymbol(symbol);
calculationBean.setValue2(value2);
intent.putExtra("calculationBean", calculationBean);
this.startActivity(intent);
}
}
<!-- 计算结果Activity -->
public class CalculationResultActivity extends Activity {
private TextView resultTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculation_result);
setResult1();
}
// 通过字符串的方式传输数据
public void setResult() {
resultTextView = (TextView) findViewById(R.id.tv_result);
Intent intent = getIntent();
String value1 = intent.getStringExtra("value1");
String symbol = intent.getStringExtra("symbol");
String value2 = intent.getStringExtra("value2");
int result = getResult(value1, symbol, value2);
resultTextView.setText(result + "");
}
// 通过对象的方式传输数据
public void setResult1() {
resultTextView = (TextView) findViewById(R.id.tv_result);
Intent intent = getIntent();
CalculationBean calculationBean = (CalculationBean) intent.getSerializableExtra("calculationBean");
String value1 = calculationBean.getValue1();
String symbol = calculationBean.getSymbol();
String value2 = calculationBean.getValue2();
int result = getResult(value1, symbol, value2);
resultTextView.setText(result + "");
}
private int getResult(String value1, String symbol, String value2) {
int a1 = Integer.valueOf(value1);
int a2 = Integer.valueOf(value2);
int result = 0;
if ("+".equals(symbol)) {
result = a1 + a2;
} else if ("-".equals(symbol)) {
result = a1 - a2;
} else if ("X".equals(symbol)) {
result = a1 * a2;
} else {
result = a1 / a2;
}
return result;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.calculation_result, menu);
return true;
}
}
public class CalculationBean implements Serializable {
private static final long serialVersionUID = -1188062716570945805L;
private String value1;
private String symbol;
private String value2;
public String getValue1() {
return value1;
}
public void setValue1(String value1) {
this.value1 = value1;
}
public String getSymbol() {
return symbol;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
public String getValue2() {
return value2;
}
public void setValue2(String value2) {
this.value2 = value2;
}
}
<!-- 首页布局文件activity_main1.xml-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="horizontal" >
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="数值1" />
<EditText
android:id="@+id/et_value1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:hint="" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="horizontal" >
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="运算符" />
<EditText
android:id="@+id/et_symbol"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:hint="" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="horizontal" >
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="数值2" />
<EditText
android:id="@+id/et_value2"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:hint="" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="horizontal" >
<Button
android:id="@+id/button_calculation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="calculation"
android:layout_marginLeft="200dp"
android:layout_marginTop="10dp"
android:text="计算" >
</Button>
</LinearLayout>
</LinearLayout>
<!-- 计算结果布局文件activity_calculation_result.xml-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_result_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="计算结果:" />
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="111" />
</LinearLayout>
3.短信选择器(显式意图&ListView条目点击事件)
<!-- 条目选择结果的Activity -->
public class ItemClickActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item_click);
TextView itemResultContentTv = (TextView) findViewById(R.id.tv_itemResultContent);
// 获取从上个Activity跳转的意图对象
Intent intent = getIntent();
// 获取传递参数
String content = intent.getStringExtra("content");
itemResultContentTv.setText(content);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.item_click, menu);
return true;
}
}
<!-- 首页Activity -->
public class MainActivity2 extends Activity {
private String[] contents = new String[] { "祝福不请自到,你的笑容很俏", "生活节节登高,日子越过越好", "祝天下最美的女人天天快乐" };
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);
listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(new MyAdapter());
listView.setOnItemClickListener(new ItemClickListener());
}
private class ItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 获取选中的内容
String content = contents[position];
Context context = parent.getContext();
Intent intent = new Intent(context, ItemClickActivity.class);
intent.putExtra("content", content);
startActivity(intent);
}
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return contents.length;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
// 第一种写法(View.inflate)
/*
* view = View.inflate(getApplicationContext(), R.layout.item, null);
*/
// 第二种写法(LayoutInflater.from().inflate)
view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item, null);
} else {
view = convertView;
}
TextView cotentTv = (TextView) view.findViewById(R.id.cotent);
String content = contents[position];
cotentTv.setText(content);
return view;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_activity2, menu);
return true;
}
}
<!-- 首页布局文件activity_main_activity2.xml-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity2" >
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</RelativeLayout>
<!-- 条目选择结果布局文件activity_item_click.xml -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".ItemClickActivity" >
<TextView
android:id="@+id/tv_itemResultContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="短信内容" />
</RelativeLayout>
4.使用到的清单文件(设置打电话权限)
<!-- 清单文件 -->
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activity"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.activity.MainActivity2"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.example.activity.CalculationResultActivity" />
<activity android:name="com.example.activity.ItemClickActivity" />
</application>
</manifest>