AndroidのActivity間のジャンプ
3985 ワード
Activity受信/転送戻り値:シンボル説明:Aは要求を表すActivity Bは戻り値を持つActivity(要求された)Aを表す:異なる要求は異なる要求コードを使用しなければならない.毎回要求される要求コードが一意であり、>=0であるからである.startActivity ForResult()を使用します.方法起動ジャンプを実現する.B中:setResult(1,intent);戻り値を設定し、Intentオブジェクトを返します.finish();方法自動終了起動、要求のActivityを実現する:
要求されたActivity:
package com.example.lesson4;
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.EditText;
/* Activity */
public class MainActivity extends Activity {
private Button btnOne=null;
private Button btnTwo = null;
private EditText editText1 = null,editText2 = null;
/* : , :>=0 */
private int requestCode ;
private Intent intent;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* */
btnOne = (Button) findViewById(R.id.btnOne);
btnTwo = (Button) findViewById(R.id.btnTwo);
editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
/* */
btnOne.setOnClickListener(listener);
btnTwo.setOnClickListener(listener);
/* new Intent , */
intent = new Intent(MainActivity.this,BackValueActivity.class);
}
/* OnClickListener , Button */
OnClickListener listener = new OnClickListener() {
/* View v */
public void onClick(View v) {
// TODO Auto-generated method stub
int id = v.getId();
switch(id){
case R.id.btnOne:
/* , */
requestCode = 0;
/* Intent , B */
startActivityForResult(intent, requestCode);
break;
case R.id.btnTwo:
requestCode = 1;
startActivityForResult(intent, requestCode);
break;
}
}
};
/* onActivityResult, ; 1: ; 2: ; 3: Intent ( ) */
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case 0:
/* EditText1 */
String a = data.getStringExtra("key");
editText1.setText(a);
break;
case 1:
String b = data.getStringExtra("key");
editText2.setText(b);
break;
}
}
}
要求されたActivity:
package com.example.lesson4;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
/* Activity , */
public class BackValueActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
/* new Intent , Activity */
Intent intent = new Intent();
/* , */
intent.putExtra("key", getRandomNumber());
/* , 1: ; : Intent , */
setResult(1, intent);
/* Activity */
finish();
}
/* method */
protected static String getRandomNumber(){
String num = "";
int a = (int)((Math.random()*99)+10);
int b = (int)((Math.random()*99)+10);
num = a+" "+b;
return num;
}
}