前のactivityにデータを返す
7423 ワード
メインプログラムでactivity 2を呼び出す方法をstartActivity ForResult(intent,0)0に変更すると、次のActivityが値を返す根拠となり、自己定義の参照フラグとして指定できます.プログラムはonactivityresult()という方法を書き換え、プログラムがresultを受け取った後、ロードを書き換えて元の入力した値に戻す.(ASで結果を書き換えてエラーを報告し、@overrideを削除しました)
Activityメインプログラムのコード
@Overrideでの書き換えは不要ですのでご注意ください
activity 2のコードは以下の通りです.
Activityメインプログラムのコード
package com.administrator.testall;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
public class ChangeTest01 extends ActionBarActivity {
private EditText et;
private RadioButton rg1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_test01);
Button button01 = (Button) findViewById(R.id.button1);
button01.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
EditText et = (EditText) findViewById(R.id.editText1);
double editText1 = Double.parseDouble(et.getText().toString()); //
String choose = "";
RadioButton rg1 = (RadioButton) findViewById(R.id.radioButton); //
if(rg1.isClickable())
{
choose = "M";
}
else choose = "F";
Intent intent = new Intent();
intent.setClass(ChangeTest01.this,ChangeTest02.class); //activity
Bundle bundle = new Bundle(); //activity
bundle.putDouble("edit1",editText1); // ,
bundle.putString("choose",choose);
intent.putExtras(bundle); // bundle intert;
startActivityForResult(intent, 0); // activity
}
}
);
}
protected void OnActivityResult(int requestCode,int resultCode,Intent data)
{
switch (resultCode)
{
case RESULT_OK:
// activity2
Bundle bundle = data.getExtras();
String choose = bundle.getString("choose");
double edit1 = bundle.getDouble("edit1");;
et.setText(String.valueOf(edit1));
if(choose.equals("M")) rg1.setChecked(true);
break;
default:
break;
}
}
}
@Overrideでの書き換えは不要ですのでご注意ください
activity 2のコードは以下の通りです.
package com.administrator.testall;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
public class ChangeTest02 extends ActionBarActivity {
Bundle bundle;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_test02);
intent = this.getIntent();
bundle = this.getIntent().getExtras(); // intent bundle
String choose = bundle.getString("choose"); // bundle
double edit1 = bundle.getDouble("edit1");
String chooseText = "";
if(choose.equals("M"))
{
chooseText="A";
}else chooseText="B";
TextView textView1 = (TextView) findViewById(R.id.textView1);
textView1.setText(chooseText);
TextView textView2 = (TextView) findViewById(R.id.textView2);
textView2.setText(String.valueOf(edit1)); //double string
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
ChangeTest02.this.setResult(RESULT_OK,intent); // result activity
ChangeTest02.this.finish(); // activity
}
}
);
}
}