android的四大组件之一Activity,即为界面。今天的内容是Activity的配置和Activity的生命周期。
1:Activity的配置:
<activity
android:name="com.example.activity.MainActivity"//指定activity的类名
android:label="@string/app_name">//该界面的标签
<intent-filter>//过滤器
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Demo1
package com.example.activity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
/**
* activity之生命周期
* @author
*
*/
public class MainActivity extends Activity {
private static String TAG="MainActivity";
Button btn2;
EditText et;
private static String CONTENT="content";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act);
Log.i(TAG,"MainActivity--->>>onCreate");
/**
* 把保留下来的数据拿来初始化
*/
if(savedInstanceState!=null&&savedInstanceState.containsKey(CONTENT))
{
et.setText(savedInstanceState.getString(CONTENT));
}
et=(EditText) findViewById(R.id.et);
btn2=(Button) findViewById(R.id.button2);
btn2.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.i(TAG,"MainActivity--->>>onDestroy");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.i(TAG,"MainActivity--->>>onPause");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.i(TAG,"MainActivity--->>>onRestart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.i(TAG,"MainActivity--->>>onResume");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.i(TAG,"MainActivity--->>>onStart");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.i(TAG,"MainActivity--->>>onStop");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
Log.i(TAG,"MainActivity--->>>onSaveInstanceState");
String str=et.getText().toString();
outState.putString(CONTENT, str);
}
}
<span style="font-size:32px;color:#ff0000;"><strong>SecondActivity.class</strong></span>
<span style="font-size:32px;color:#ff0000;"><strong></strong></span><pre name="code" class="java">package com.example.activity;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SecondActivity extends Activity {
private static String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
Log.i(TAG,"SecondActivity--->>>onCreate");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.i(TAG,"SecondActivity--->>>onDestroy");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.i(TAG,"SecondActivity--->>>onPause");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.i(TAG,"SecondActivity--->>>onRestart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.i(TAG,"SecondActivity--->>>onResume");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.i(TAG,"SecondActivity--->>>onStart");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.i(TAG,"SecondActivity--->>>onStop");
}
}
3:启动activity
1:startActivity(intent);
2: startActivityForResult(intent,int RequestCode);//请求码;
3.1:关闭Activity
1:finish();
2: finish(int RequestCode);
下面我们通过两个例子讲解内容:
Demo2:当几个界面之间数据相互交互的时候
package com.example.intent;
/**
*
*
*
* intent的应用 打开第二个界面 几个界面之间传递参数;
*/
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Button btn;
protected static int REQUEST_CODE=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intent);
btn=(Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
/**
* 通过intent启动下一个intent
*/
Intent intent=new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
//如果要传递一些数据
intent.putExtra("str", "the second");
//当需要第二个activity返回一些数据时候
startActivityForResult(intent,REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==REQUEST_CODE)
{
if(resultCode==SecondActivity.RESULT_CODE)//
{
Bundle bundle=data.getExtras();
String str=bundle.getString("back");
String str1=bundle.getString("str");
Toast.makeText(MainActivity.this, str, 0).show();
Toast.makeText(MainActivity.this, str1, 0).show();
}
}
}
}
package com.example.intent;
/**
*
*
*/
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class SecondActivity extends Activity {
Button btn;
Intent intent;
protected static int RESULT_CODE=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
//得到Intent
intent=getIntent();
//得到上面的Intent 接收数据
Bundle bundle=intent.getExtras();
//得到对于键值的数据
String str=bundle.getString("str");
btn=(Button) findViewById(R.id.button2);
Toast.makeText(SecondActivity.this, str, 0).show();
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
intent.putExtra("back","back data");
//当关闭时候 返回数据
setResult(RESULT_CODE,intent);
//关闭第二个界面
finish();
}
});
}
}