android 跳转页面出错,Android 页面跳转(无/含有返回结果)
一.兩個頁面的xml文件
factivity
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="直接跳轉(zhuǎn)" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="跳轉(zhuǎn)至改變textview" />
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="回傳的數(shù)據(jù)顯示" />
sactivity
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回FA" />
二.在manifest中注冊Activity,為首先啟動的activity提供標注
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name=".Factivity"
android:label="@string/app_name" >
//首先啟動的activity的標注
android:name=".Sactivity"
android:label="@string/app_name" >
三.第一個種跳轉(zhuǎn):無返回結(jié)果的跳轉(zhuǎn)
Factivity文件編寫
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);
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(Factivity.this, Sactivity.class);
startActivity(intent);
}
此時在模擬器中測試,點擊“直接跳轉(zhuǎn)”可以轉(zhuǎn)致另一個頁面
四.第二個種跳轉(zhuǎn):含有返回結(jié)果的跳轉(zhuǎn)
Factivity文件編寫
private Button bt2;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
bt2 = (Button) findViewById(R.id.button2);
tv= (TextView) findViewById(R.id.textView1);
bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Factivity.this, Sactivity.class);
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1&&resultCode==2){
String content = data.getStringExtra("data");
tv.setText(content);
}
}
Sactivity文件編寫
private Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sactivity);
bt= (Button) findViewById(R.id.button);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent data= new Intent();
data.putExtra("data","hello");
setResult(2,data);
finish();
}
});
}
此時點擊“跳轉(zhuǎn)至改變textview”可跳轉(zhuǎn)至另一頁面,點擊另一頁面的按鈕返回原頁面,可見textview已經(jīng)被修改為“hello”
五.代碼的具體理解
Intent intent = new Intent(Factivity.this, Sactivity.class);
startActivity(intent);
可以認為intent是startActivity的一個指引,表達從什么地方(Factivity.this)到什么地方(Sactivity.class)
Intent intent = new Intent(Factivity.this, Sactivity.class);
startActivityForResult(intent, 1);
startActivityForResult中的intent同理,“1”代表了從Factivity到Sactivity的申請代號
Intent data= new Intent();
data.putExtra("data","hello");
setResult(2,data);
finish();
intent不再代表跳轉(zhuǎn),而是作為信使攜帶返回參數(shù)的代號“data”和具體參數(shù)“hello”
setResult()方法中的2是從Sactivity到Factivity的結(jié)果代號
if(requestCode==1&&resultCode==2){
String content = data.getStringExtra("data");
tv.setText(content);}
在驗證申請代號和結(jié)果代號之后,初始化一個String通過intent的getStringExtra方法用返回參數(shù)的代號“data”得到返回的具體參數(shù)
總結(jié)
以上是生活随笔為你收集整理的android 跳转页面出错,Android 页面跳转(无/含有返回结果)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果设备解锁工具:iToolab Unl
- 下一篇: 使用DBI(perl)实现文本文件的导入