学习自慕课网。
一个直接转跳式,另一个回传式。
第一个先是直接跳转。
首先新建一个布局文件xml,第一个的话,就叫做factivity,直接线性布局好弄~
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="第一种启动方式" /><!-- 设置第一个按钮 --> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="第二种启动方式" /><!-- 设置第二个按钮,回传数据的方式 --> <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="把第二个页面内容回传" /><!-- 后面回传要用的显示的,这里不管 --> </LinearLayout>
然后新建一个R文件,第一个就叫做FActivity,然后进行相关设置。
package com.deemo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class FActivity extends Activity{ private Button bt1 ;//设置按钮一 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.factivity); bt1 = (Button) findViewById(R.id.button1);//初始化按钮1 //注册点击事件,通过startActicity实现 bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(FActivity.this, SActiviyt.class);//初始化Intent //第一个是上下文对象this, // 第二个是目标文件 startActivity(intent);//进行跳转 } }); } }
然后去AndroidMainfest修改启动。、
加入下面的代码,将两个页面设置进去,然后将原来的MainActivity弄掉~
<activity android:name="com.deemo.FActivity" android:label="@string/app_name" > <intent-filter><!-- 下面两行表示从这里开始执行 --> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.deemo.SActiviyt" android:label="@string/app_name" > </activity> </application>
然后就可以试试了,直接转跳效果。
然后然后说第二种转跳方式,就是带回传数据的转跳方式。
首先还是建一个sacitivity的xml文件,放一个按钮用来回跳。创的时候下意识地线性布局了。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>
然后去创建SActiviyt(其实本来是SActivity,手滑写错了就不改了。。。)
package com.deemo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class SActiviyt extends Activity{ private Button bt;//设置 private String content = "回传数据"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sactivity); bt = (Button) findViewById(R.id.button1);//初始化 bt.setOnClickListener(new OnClickListener() {//点击事件 @Override public void onClick(View arg0) { Intent data = new Intent(); data.putExtra("data",content); setResult(2, data); finish();//结束当前页面,笨办法返回前一页面 } }); } }
然后回到FActivity的R文件里面把应该修改的一改。
package com.deemo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class FActivity extends Activity{ private Button bt1 ;//设置按钮一 private Button bt2;//设置按钮二 private TextView tv;//初始化文本 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.factivity); tv = (TextView)findViewById(R.id.textView1); bt1 = (Button) findViewById(R.id.button1);//初始化按钮1 bt2 = (Button) findViewById(R.id.button2);//初始化按钮2 //注册点击事件,通过startActicity实现 bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(FActivity.this, SActiviyt.class);//初始化Intent //第一个是上下文对象this, // 第二个是目标文件 startActivity(intent);//进行跳转 } }); //通过startActivityForresult跳转 bt2.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(FActivity.this,SActiviyt.class);//初始化 startActivityForResult(intent, 1);//第一个intent对象 //第二个是请求标识 } }); } //接受返回数据 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {//请求标志,第二个页面返回标志,第二个页面回传数据 super.onActivityResult(requestCode, resultCode, data); if(requestCode == 1&&resultCode==2){//判断页面 String content = data.getStringExtra("data");//取数据 tv.setText(content);//设置文本 } } }
然后剩下的第一种的时候配置都改过了。
运行吧。