本文共 8182 字,大约阅读时间需要 27 分钟。
我们知道一个Activity代表一个页面。其中,在我们创建完成Android项目的时候,不难发现Activity的OnCreate方法是页面的入口函数。下图是为Activity的生命周期图:
Task是一个存放Activity的一个栈,遵循先进后出的原则,分有压栈(进栈)和盘栈(出栈)两个操作。Activity都会作为元素存放在Task里面,遵循先进后出的原则。每运行一个Activity都会将此Activity压栈,从第一个运行Activity中跳转到第二个Activity,第二个Activity会压栈到第一个Activity的顶部,然后把运行在第二个Activity、第三个、第四个等依次类推。如果在跳转Activity之前当前的Activity没有执行finish()方法,此Activity就不会在Task中被销毁。
1、下面用一个实例来实现向下一个Activity传递参数。
实现的页面效果是:MainActivity.java
package cn.edu.hznu.ex4_1;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.RadioButton;import android.widget.RadioGroup;import java.io.Serializable;public class MainActivity extends AppCompatActivity { private EditText editText1,editText2,editText3; private RadioButton rediobutton1,rediobutton2; private CheckBox checkBox1,checkBox2,checkBox3; private Button button; private RadioGroup radiogroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String name=editText1.getText().toString(); String age=editText2.getText().toString(); RadioButton rb = (RadioButton)findViewById(radiogroup.getCheckedRadioButtonId()); String sex=rb.getText().toString(); //获取性别 String phone=editText3.getText().toString(); StringBuilder str = new StringBuilder(); if(checkBox1.isChecked()){ str.append(checkBox1.getText().toString()+" "); } if(checkBox2.isChecked()){ str.append(checkBox2.getText().toString()+" "); } if(checkBox3.isChecked()){ str.append(checkBox3.getText().toString()+" "); } Intent intent=new Intent(MainActivity.this,Main2Activity.class); intent.putExtra("name",name); intent.putExtra("age",age); intent.putExtra("sex",sex); intent.putExtra("phone",phone); intent.putExtra("str", (Serializable) str); startActivity(intent); } }); } public void init(){ editText1=(EditText) findViewById(R.id.name); editText2=(EditText) findViewById(R.id.age); editText3=(EditText) findViewById(R.id.phone); radiogroup=(RadioGroup) findViewById(R.id.radiogroup); button=(Button) findViewById(R.id.button); checkBox1=(CheckBox) findViewById(R.id.sport); checkBox2=(CheckBox) findViewById(R.id.read); checkBox3=(CheckBox) findViewById(R.id.travel); }}
下面是第二个Activity
activity_main2.xmlMain2Activity.java
package cn.edu.hznu.ex4_1;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;public class Main2Activity extends AppCompatActivity { private TextView textView[]=new TextView[5]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); init(); Bundle bundle=getIntent().getExtras(); String name=bundle.getString("name"); String age=bundle.getString("age"); String sex=bundle.getString("sex"); String phone=bundle.getString("phone"); String str=bundle.getString("str"); textView[0].setText("你的姓名:"+name); textView[1].setText("你的年龄:"+age); textView[2].setText("你的性别:"+sex); textView[3].setText("你的电话:"+phone); textView[4].setText("你的爱好有:"+str); } public void init(){ textView[0]=(TextView) findViewById(R.id.name); textView[1]=(TextView) findViewById(R.id.age); textView[2]=(TextView) findViewById(R.id.sex); textView[3]=(TextView) findViewById(R.id.phone); textView[4]=(TextView) findViewById(R.id.str); }}
当填入信息点击提交按钮:
示例:在第一个页面点击“点击按钮”跳转第二个页面:
MainActivity.java
package cn.edu.hznu.ex4_2;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends AppCompatActivity { private TextView textView; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView=(TextView)findViewById(R.id.textview); button=(Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivityForResult(intent,1); } }); } /**requestCode:请求编号:判断对应的是哪次请求 * resultCode:应答代码:判断后一个页面是否处理成功 * * @param requestCode * @param resultCode * @param data */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case 1: if(data!=null&&resultCode==RESULT_OK){ String value=data.getStringExtra("value"); textView.setText(value); } break; case 2: break; } }}
第二个页面:
activity_two.xmlTwoActivity.java
package cn.edu.hznu.ex4_2;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;public class SecondActivity extends AppCompatActivity { private ListView listView; private String[] data={ "江苏省","河南省","安徽省","江西省"}; private ArrayAdapter
效果:
转载地址:http://ewayk.baihongyu.com/