Adndroid 从入门到精通 第五章 Activity

来源:互联网 发布:icebar 知乎 编辑:程序博客网 时间:2024/05/16 23:59


Activity 四大状态:

    活动状态:位于Activity栈顶 用户可见,获得焦点

   暂停状态:失去焦点的Activity 用户不可见,在系统内存低的情况下不能被Killed

   停止状态: 该Activity被其他Activity覆盖,用户不可见,在系统内存低的情况下会被Killed  仍然保存所有的状态和信息

   销毁状态:该Activity结束  或Activity所在的Dalvik进程结束

Activity的回调方法:

   onCreate()         在创建Activity的时候被回调

   onStart()              在启动Activity的时候被回调

   onRestart()         重新启动Activity的时候被回调

   onPause()          暂停Activity的时候被回调

   onResume()     当Activity由暂定状态恢复成活动状态被回调

   onStop()            停止Activity时被回调

   onDestroy()      销毁Activity时被回调



//启动 Activity   

Intent mIntent=new Intent(MainActivity.this, Detaile.class);startActivity(mIntent);
//关闭 Activity

finish();

//创建无布局文件的Activity

public class AboutActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);LinearLayout ll = new LinearLayout(this);//创建一个线性布局ll.setPadding(20, 20, 20, 20);  //设置线性布局的内边距TextView tx = new  TextView(this);//创建文本tx.setTextSize(24);//设置文本大小tx.setText("adasdjkaslkdjaskdljaskdjasdlkjasldkjaslkdjasdkjasdlk");//设置内容ll.addView(tx);setContentView(ll);}}

  <activity            android:name=".AboutActivity"            android:label="@string/about"            android:theme="@android:style/Theme.Dialog" ><!-- 已Dialog的方式显示 -->        </activity>

----------------------------------------------------多个Activity的使用----------------------------------------------------------------------------------------------------

Bundle 是一个字符串到各种Parcelable类型的映射,用于保存要携带的数据包

//传送数据的Activity

String UserName=((EditText)findViewById(R.id.id_UserName)).getText().toString();//获取用户名String PassWord=((EditText)findViewById(R.id.id_UserPass)).getText().toString();//获取用户密码<span style="color:#FF6666;">Intent mIntent = new Intent(Register.this, Detaile.class);Bundle mBundle = new Bundle();//实例化一个Bundle对象</span>mBundle.putCharSequence("User", UserName);//保存用户名mBundle.putCharSequence("pas", PassWord);//保存密码<span style="color:#FF6666;">mIntent.putExtras(mBundle);//将创建好的Bundle添加到Intent中</span>startActivity(mIntent);//启动

//接收收据的Activity

private void GetIntent() {Intent mIntent=getIntent();//获取Intent对象Bundle mBundle=mIntent.getExtras();//  获取传递的数据报<span style="color:#FF0000;">String UserName=mBundle.getString("User").toString();</span>Toast.makeText(Detaile.this, UserName, Toast.LENGTH_SHORT).show();}

-------------------------------调用另一个Activity 并返回结果------------------------------------------------------------

1声明一个常量的CODE 

2 使用     Intent mIntent = new Intent(Test001.this, Hand.class);
                startActivityForResult(mIntent,Code2);     启动Activity

3.重写onActivityResult方法

4判断if (requestCode==CODE&&resultCode==CODE)

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_hand);mArrayList = new ArrayList<Map<String, Object>>();for (int i = 0; i < Img.length; i++) {Map<String, Object> map = new HashMap<String, Object>();map.put("Img", Img[i]);mArrayList.add(map);}SimpleAdapter mSimpleAdapter = new SimpleAdapter(Hand.this, mArrayList,R.layout.item, new String[] { "Img" },new int[] { R.id.id_img });((GridView)findViewById(R.id.GridView1)).setAdapter(mSimpleAdapter);((GridView)findViewById(R.id.GridView1)).setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {Intent mIntent =getIntent();Bundle mBundle=new Bundle();mBundle.putInt("Image", Img[position]);mIntent.putExtras(mBundle);setResult(1, mIntent);finish();}});}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO 自动生成的方法存根super.onActivityResult(requestCode, resultCode, data);if (requestCode==CODE&&resultCode==CODE) {((EditText)findViewById(R.id.editText1)).setText("");((EditText)findViewById(R.id.editText2)).setText("");RadioGroup sexRadioGroup=(RadioGroup)findViewById(R.id.sex);String Sex="";for (int i = 0; i < sexRadioGroup.getChildCount(); i++) {RadioButton mRadioButton=(RadioButton)sexRadioGroup.getChildAt(i);mRadioButton.setChecked(false);}}if(requestCode==Code2&&resultCode==Code2){//获取选中的图像赋值//取  data就是IntentBundle mBundle=data.getExtras();int InageID=mBundle.getInt("Image");((ImageView)findViewById(R.id.id_ImgView)).setImageResource(InageID);}






0 0