我的MainActivity正在调用第二个活动PopupWindow,其中包含一个列表视图。当用户单击列表视图时,我需要将该信息返回到第一个活动(MainActivity)。因此在MainActivity中,我有这两种方法。第一个方法调用第二个活动,第二个从第二个活动获取结果
//event listener for authors list menu (popup window)
authorListImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent popupWinIntent = new Intent(getBaseContext(), AuthorsPopup.class);
popupWinIntent.putExtra("allauthors", allAuthors);
startActivity(popupWinIntent);
}
});
//fetching result -- author from AuthorsPopup activity back
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK) {
String author = data.getStringExtra("author");
Log.v("author ", author);
}
}
}
此方法在onCreate()方法之外。一些教程建议创建avobe方法,就像onActivityResul()一样,我假设这种情况将在onCreate()方法内部。我的是一个方法声明。如此执着地不执行。在我的第二项活动中。我有这个
//event listener for authros listview
authorListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> paren, View view, int position, long id) {
// Log.v("author: ", authorsList[position]);
String author = authorsList[position];
Intent returnResultIntent = new Intent(getBaseContext(), MainActivity.class);
returnResultIntent.putExtra("author", author);
setResult(RESULT_OK, returnResultIntent);
finish();
}
});
从第二个活动中取回数据的正确方法是什么?
答案 0 :(得分:3)
您需要使用startActivityForResult(popupWinIntent,1)
而不是startActivity(popupWinIntent)
启动第二个活动,并在第一个Activity中覆盖onActivityResult
方法,如下所示:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("author");
}
}
}
您列出的第一个authorListImageView.setOnClickListener
代码将放入onCreate
答案 1 :(得分:0)
第一个活动 如何获得价值
SharedPreferences sharedPreferences;
sharedPreferences = getSharedPreferences(“ FileName”,0);
sharedPreferences.getString(“ KEY”,“ DefaultValue”); sharedPreferences.getBoolean(“ KEY”,false);
第二活动 如何设置或放置活动中的值以进行其他活动
SharedPreferences sharedPreferences; SharedPreferences.Editor编辑器;
sharedPreferences = getSharedPreferences(“ FileName”,0); editor = sharedPreferences.edit();
editor.putString("KEY","Value");
editor.putBoolean("KEY",true);
editor.apply();