首页 > 代码库 > [android] activity基础
[android] activity基础
//MainActivitypackage cn.eoe.helloeoe;import android.support.v7.app.ActionBarActivity;import android.R.string;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends ActionBarActivity { private Button btnStartAty1; private TextView tvOut; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnStartAty1 = (Button) findViewById(R.id.btnStartAty1); tvOut = (TextView) findViewById(R.id.tvOut); btnStartAty1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this, Aty1.class); i.putExtra("text", "get from main");// startActivity(i); startActivityForResult(i, 0); } }); System.out.println("onCreate!!"); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { String result = data.getStringExtra("result"); tvOut.setText(result); super.onActivityResult(requestCode, resultCode, data); } @Override protected void onStart() { System.out.println("onStart"); super.onStart(); } @Override protected void onResume() { System.out.println("onResume"); super.onResume(); } @Override protected void onPause() { System.out.println("onPause"); super.onPause(); } @Override protected void onStop() { System.out.println("onStop"); super.onStop(); } @Override protected void onDestroy() { System.out.println("onDestroy"); super.onDestroy(); } @Override protected void onRestart() { System.out.println("onRestart"); super.onRestart(); } }
//son activitypublic class Aty1 extends Activity { private Button btnClose; private TextView tvOut; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aty1); btnClose = (Button) findViewById(R.id.btnClose); btnClose.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent result = new Intent(); result.putExtra("result", "from Aty1"); setResult(0,result); finish(); } }); tvOut = (TextView) findViewById(R.id.tvOut); String fromMain = getIntent().getStringExtra("text"); tvOut.setText(fromMain); }}
activity声明周期以及自动调用的函数
(1)第一次启动会调用oncreate onstart onresume
(2)被其他activity挡住当前activity会调用onpause
(3)如果activity在onpause后系统需要更多内存,则会杀死activity,并调用onstop;
1、试用了插件后,可在对应的资源文件xml中修改其id号,并使用findViewById()找到插件;
2、监听按钮
btnStartAty1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this, Aty1.class); i.putExtra("text", "get from main");// startActivity(i); startActivityForResult(i, 0); } });
setOnClickListener()要求传入一个OnClickListener的实例,于是直接编写匿名函数,并重写onclick函数;
函数中使用一个intent装载了一个父acitivity和一个子activity的class,并使用startActivity()可打开一个新的activity;
如果使用startActivityForResult()打开一个activity,则可以监听其返回值,用于两个activity之间的数据互通;
3、子activity返回结果
使用setResult()与父activity交换数据,父activity重写
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { String result = data.getStringExtra("result"); tvOut.setText(result); super.onActivityResult(requestCode, resultCode, data); }
接受setresutl的结果,data就是setresult传回来的intent;
4、使用finish()关闭一个activity;
[android] activity基础
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。