为了账号安全,请及时绑定邮箱和手机立即绑定

如何从第二活动到第一活动获取数据

如何从第二活动到第一活动获取数据

互换的青春 2021-04-15 14:15:54
我的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();            }        });从第二个活动中取回数据的正确方法是什么?
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

您需要使用startActivityForResult(popupWinIntent,1)而不是来启动第二个活动,startActivity(popupWinIntent)并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


查看完整回答
反对 回复 2021-04-21
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

第一次活动如何获得价值


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();


查看完整回答
反对 回复 2021-04-21
  • 2 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信