重新寫安卓程式,居然忘記Intent的用法,重新回顧一下,加深一下影響。
在安卓裡面程式設計比較常用的跳轉那就是Intent。Intent的意思是意圖,Intent跳轉有兩種方式,一種就是沒有傳回值的,一種是有傳回值的。
沒有傳回值的用法:
1、建立一個intent,然後把需要的參數傳進去。
Intent intent=new Intent(this, SActivity.class);
一個是Context參數,一個是要跳轉的頁面。
2、調用方法startActivity去跳轉。
startActivity(intent);
有傳回值的用法:
1、建立一個intent,然後把需要的參數傳進去。
Intent intent2=new Intent(this, SActivity.class);
2、調用方法startActivityForResult(Intent intent, int requestCode)
startActivityForResult(intent2, 1);
3、使用有傳回值的那就需要去處理這個傳回值,那就需要去重寫onActivityResult方法。
onActivityResult(int requestCode, int resultCode, Intent data)
- requestCode :這個是請求碼
- resultCode: 這個是結果碼
- data:Intent執行個體
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==1&&resultCode==2){
String string = data.getStringExtra(“data”);
mTextView.setText(string);
}
}
4、跳轉後的頁面需要處理 setResult(int resultCode, Intent data)方法。
setResult(2, intent);
最後代碼呈上:
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class FActivity extends Activity implements OnClickListener{
private Button mButton;
private Button mButton2;
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_f);
mTextView =(TextView) findViewById( R.id.textView1);
mButton=(Button) findViewById(R.id.button1);
mButton2=(Button) findViewById(R.id.button2);
mButton.setOnClickListener(this);
mButton2.setOnClickListener(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==1&&resultCode==2){
String string = data.getStringExtra("data");
mTextView.setText(string);
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
Intent intent=new Intent(FActivity.this, SActivity.class);
startActivity(intent);
break;
case R.id.button2:
Intent intent2=new Intent(FActivity.this, SActivity.class);
startActivityForResult(intent2, 1);
break;
default:
break;
}
}
}
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SActivity extends Activity implements OnClickListener{
private Button mButton;
String data="你好";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_s);
mButton =(Button) findViewById(R.id.button3);
mButton .setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.putExtra("data", data);
//添加資料,然後回傳給之前的頁面
setResult(2, intent);
finish();
}
}
activity_f代碼:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".FActivity" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/button1"
android:text="Button" />
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/hello_world" />
</RelativeLayout>
activity_s代碼:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SActivity" >
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button" />
</RelativeLayout>
總結完了。