基本的 Intent 應用
Using intent.activity
1. 在 AndroidManifest.xml裡加入<activity></activity>; ".Cutee"指的是另建的java class 檔名:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cq.intent.linchen"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".IntentActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:label="@string/app_name_2" android:name=".Cutee"></activity>
</application>
</manifest>
2. 在MainActivity.java要加入
Intent intent = new Intent(IntentActivity.this, Cutee.class);
startActivity(intent); // 如果要等待回傳則是
:startActivityForResult(intent, SHOW_EDITOR);
***************************
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Set up button1
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//建立 this 和要傳遞目的的關係
Intent intent = new Intent(MainActivity.this, Cutee.class);
EditText editText1 = (EditText)findViewById(R.id.editText1);
CharSequence text = editText1.getText();
//將傳遞資料安置在共同記憶區,變數名稱:TEXT
intent.putExtra("TEXT", text);
//切換到CUTEE.java,同時等待回應,設定requestCode=SHOW_EDITOR
startActivityForResult(intent, SHOW_EDITOR);
}
});
}
//MainActivity is waiting the replying message
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == SHOW_EDITOR){
if (resultCode == RESULT_OK){
TextView textView2 = (TextView) findViewById(R.id.textView2);
textView2.setText("RESULT_OK: " + data.getCharSequenceExtra("TEXT"));
}
}
}
*********************************************
Cutee.java
public class Cutee extends Activity{
//Cutee主程式
@Override
public void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.chatter);
Button button = (Button) findViewById(R.id.cuteeButton1);
//自共同記憶區取得傳遞資料,變數名稱:TEXT
Bundle extras = getIntent().getExtras();
if (extras != null){
EditText editText = (EditText) findViewById(R.id.cuteeEditText1);
editText.setText(extras.getCharSequence("TEXT"));
}
//設定 chatterButton1 的操作
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
EditText editText = (EditText)findViewById(R.id.cuteeEditText1);
CharSequence text = editText.getText();
//將回傳資料安置在共同記憶區,變數名稱:TEXT
intent.putExtra("TEXT", text);
//回應信息,回到 MainActivity, resultCode==RESULT_OK
setResult(RESULT_OK, intent);
//End of Cutee
finish();
}
});
}
}
沒有留言:
張貼留言