在我的项目中,ActivityTwo作为ActivityOne的子活动启动,而ActivityOne又被修改为处理从ActivityTwo返回的数据。
ActivityOne中的TextView应该将输入到EditText中的文本作为ActivityTwo中的键值检索添加到intent对象中。 尽管成功发布,但它并没有提取意图对象。
我查看了可能出现的类似问题,并通过以下方式了解到: How to manage `startActivityForResult` on Android?
然而,我仍然无法弄清楚为什么我的TextView无法设置从第二个活动中检索到的intent对象中提取的文本。
任何有用的帮助表示赞赏。
提前致谢 您可以在下面看到代码:
ActivityOne :
<auto-detect/>
ActivityTwo :
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);
}
}
}
答案 0 :(得分:1)
您的ActivityOne.onActivityResult()
代码中是否存在拼写错误?
您好像检查requestCode
是否等于两个可能不同的值REQUEST_CODE
和RESULT_OK
。
答案 1 :(得分:1)
正如Pavel所说,错误在于onActivityResult()方法。
所以我在ActivityOne源文件中做了以下更改。
我只是用resultCode替换了一个requestCode,现在它确实有效!
再次感谢他
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if ((requestCode == REQUEST_CODE) && (resultCode == RESULT_OK)) {
String result = data.getExtras().getString("returnData");
tlfNo.setText("Telefon numaranız: " + result);
}
}