Activity和Intent
来源:互联网 发布:天翼飞young mac 编辑:程序博客网 时间:2024/05/29 21:34
(一)Activity的初步
/* * 创建Activity的要点 * 1.一个Activity就是一个类,并且这个类要继承Activity * 2.要重写onCreate方法 * 3.每一个Activity都需要在AndroidManifest.xml中进行配置 * 4.为Activity添加必要的控件 */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView myTextView=(TextView)findViewById(R.id.myTextView); Button myButton=(Button)findViewById(R.id.myButton); myTextView.setText("我的第一个TextView"); myButton.setText("我的第一个Button"); }
//在AndroidManifest.xml中进行配置
<activity android:name=".ResultActivity">
//在main.xml中创建界面
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/myTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/myButton" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button></LinearLayout>
(二)Activity和Intent(做一个简单的乘法运算,并用Intent对象传递两个操作参数到另外一个Activity)
/*一个Intent对象包含了一组信息:
* 1.Component name:启动另外的哪一个Activity
* 2.Action:另外一个Activity要做什么
* 3.Data:传递什么类型的数据
* 4.Category
* 5.Extras:存储key/value
* 6.Flags
*/
a.新建一个Activity_03.xml,文件的内容如下:
private EditText factorOne; private TextView symobol; private EditText factorTwo; private Button calculate; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //通过ID取得代表控件的对象 factorOne=(EditText)this.findViewById(R.id.factorOne); symobol=(TextView)this.findViewById(R.id.symbol); factorTwo=(EditText)this.findViewById(R.id.factorTwo); calculate=(Button)this.findViewById(R.id.calculate); //为symobol和calculate设置显示的值(也可以在string.xml文件中设置它们显示的内容,通过id来 获得它们的值) // symobol.setText("乘以"); // calculate.setText("计算"); symobol.setText(string.symbol); calculate.setText(string.calculate); //将监听器对象绑定到按钮对象 calculate.setOnClickListener(new CalculateListener()); } //点击menu按钮时,调用该方法 @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub menu.add(0, 1, 1,R.string.exist); menu.add(0, 2, 2,R.string.about); return super.onCreateOptionsMenu(menu); } //当点击菜单中的某一个选项时,会调用该方法(把你点击的那个选项作为参数传递过来) @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub if(item.getItemId()==0) { this.finish(); //结束Activity } return super.onOptionsItemSelected(item); } //创建一个内部类 class CalculateListener implements OnClickListener { public void onClick(View arg0) { // TODO Auto-generated method stub //取得两个EditText的值 String factorOneStr=factorOne.getText().toString(); String factorTwoStr=factorTwo.getText().toString(); //将两个值放到Intent对象中 Intent intent=new Intent(); intent.putExtra("one",factorOneStr); intent.putExtra("two",factorTwoStr); intent.setClass(Activity_03.this,ResultActivity.class); //使用Intent对象来启动ResultActivity Activity_03Activity.this.startActivity(intent); } }}
b.新建一个ResultActivity.xml
//接收从Activity_03中传过来的两个值
//计算两个值的积并输出
public class ResultActivity extends Activity{ private TextView resultView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.result); resultView=(TextView)this.findViewById(R.id.result); //得到Intent对象中的值 Intent intent=this.getIntent(); String factorOne=intent.getStringExtra("one").toString(); String factorTwo=intent.getStringExtra("two").toString(); int factorOneInt=Integer.parseInt(factorOne); int factorTwoInt=Integer.parseInt(factorTwo); //计算两个值的积 int resultInt= factorOneInt*factorTwoInt; resultView.setText(resultInt+""); }}
(三)通过onSaveInstanceState()方法来保存Activity的状态(onSaveInstanceState()在onStop或onPause方法之前被调用,如果在应用程序的主界面,按返回,则不会被调用)
@Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); outState.putString(CONTENT,factorOne.getText().toString() ); }
则就可以在onCreate()方法中获得我们所保存的Activity的状态
if(savedInstanceState!=null&&savedInstanceState.containsKey(CONTENT)) { factorOne.setText(savedInstanceState.getString(CONTENT)); }
- Activity和Intent示例
- Android Activity和Intent
- Activity和Intent机制
- Android--Activity和Intent
- Activity和Intent机制
- Activity和Intent
- Activity和Intent
- Activity和Intent
- Activity 和 Intent
- Activity和Intent
- Android- Activity 和 Intent
- activity和intent介绍
- Activity和Intent机制
- Activity和Intent
- Activity和Intent
- Activity和Intent
- Activity和Intent
- Activity和Intent
- java中 static变量和方法到底是存在内存什么区域呢?
- windows phone 字号、pt、px、em换算对照表
- 利用反射来关闭开启GPRS
- ShareKit编译错误的处理
- ExpandableListView介绍
- Activity和Intent
- 银行业务调度系统
- Android反编译xml文件
- linux automake
- 浅析 Java Thread.join()
- Linux下弹出U盘的代码
- Android Activity生命周期(图文)!
- 性格色彩测试android程序开发之八--测试题的实现
- 基于 Android NDK 的学习之旅----- Java 方法映射到C中的签名