私のプロジェクトでは、ActivityTwo は ActivityOne のサブアクティビティとして起動され、ActivityTwo から返されたデータを処理するように変更されています。
ActivityOne の TextView は、インテント オブジェクトに追加された EditText に入力されたテキストを、ActivityTwo のキー値として取得する必要があります。起動に成功しても、インテント オブジェクトは抽出されません。
私は直面している可能性のある同様の問題を調べて、これを経験しました: Android で `startActivityForResult` を管理するにはどうすればよいですか?
それでも、TextView が 2 番目のアクティビティから取得したインテント オブジェクトから抽出されたテキストを設定できない理由をまだ理解できませんでした。
有用なヘルプをいただければ幸いです。
以下にコードを示します。
アクティビティワン:
public class ActivityOne extends AppCompatActivity {
private static final int REQUEST_CODE = 1;
EditText isimAlani, soyadiAlani;
TextView tlfNo;
Button btnIleri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
isimAlani = (EditText) findViewById(R.id.isimalani);
soyadiAlani = (EditText) findViewById(R.id.soyadialani);
tlfNo = (TextView) findViewById(R.id.tlfno);
btnIleri = (Button) findViewById(R.id.btnileri);
btnIleri.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(ActivityOne.this, ActivityTwo.class);
i.putExtra("isim", isimAlani.getText().toString());
i.putExtra("soyisim", soyadiAlani.getText().toString());
startActivityForResult(i, REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if ((requestCode == REQUEST_CODE) && (requestCode == RESULT_OK)) {
String result = data.getExtras().getString("returnData");
tlfNo.setText("Telefon numaranız: " + result);
}
}
}
アクティビティ 2 :
public class ActivityTwo extends AppCompatActivity {
EditText tlfNoAlani;
TextView tvAdSoyad;
Button btnGeri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
tlfNoAlani = (EditText) findViewById(R.id.tlfnoalani);
tvAdSoyad = (TextView) findViewById(R.id.tvadsoyad);
btnGeri = (Button) findViewById(R.id.btngeri);
Bundle extras = getIntent().getExtras();
if (extras != null) {
tvAdSoyad.setText("Merhaba " + extras.getString("isim") + " " + extras.getString("soyisim"));
}
btnGeri.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent data = new Intent();
String returnString = tlfNoAlani.getText().toString();
data.putExtra("returnData", returnString);
setResult(RESULT_OK, data);
finish();
}
});
}
}