我的申请中有两项活动。 Activity1有一个列表视图和两个按钮(比如button1和button2)。根据用户单击哪个按钮,列表视图中的内容会相应更改。默认的活动加载是在activity1中加载了button1单击内容。 在我的Activity2中,我有一个按钮(比如button3),当点击它时,必须加载activity1但是listview加载了button2点击结果,而不是显示button1点击结果的默认显示。 有关如何实现这一目标的任何帮助?在activity2中的button3的onclick事件中,我可以加载activity1,但是会加载显示button1单击结果的默认状态。
答案 0 :(得分:0)
从第二个活动发送带有标志的Intent。 在第一个活动中,请始终注意此标志并相应地触发第二个按钮代码。作为参考,您可以在此处搜索“在活动之间传递数据”或谷歌。
答案 1 :(得分:0)
通过在活动之间切换时传递一个带有IntentHandler的额外字符串来保存ListView的状态:
Intent intent = new Intent(getBaseContext(), yourActivity.class);
intent.putExtra("LISTVIEW_STATE", myListViewState);
startActivity(intent);
然后在接收活动onCreate()方法(在本例中为yourActivity)中,您可以获得状态:
Intent intent = getIntent();
String recievedListViewState = intent.getStringExtra("LISTVIEW_STATE");
答案 2 :(得分:0)
您可以通过在Intent上添加Extras来完成此操作。现在,当您从Activity2启动Activity1时,您可能拥有如下所示的代码:
Intent intent = new Intent(Activity2.this, Activity1.class);
startActivity(intent);
您可以在Intent上使用putExtra()
方法,在此意图上设置键值对(称为额外值),使其看起来像这样。
Intent intent = new Intent(Activity2.this, Activity1.class);
intent.putExtra("LIST_TO_DISPLAY", "LIST_2");
startActivity(intent);
putExtra()
(键)的第一个参数始终是String,第二个参数(值)可以是许多不同的数据类型。这是它也是一个字符串。
一旦Activity1启动,您可以使用getIntent()
获取Intent,然后从onCreate()
中获取额外内容。
protected void onCreate(Bundle b)
{
Intent intent = getIntent();
String whichList = intent.getStringExtra("LIST_TO_DISPLAY"); //which List now equals "LIST_2"
if( whichList != null && "LIST_2".equals(whichList) )
{
//Set up List 2
}
else
{
//Set up the default list
}
}
Here's the docs for the Intent Class。您可以找到所有put和get Extra方法的说明,以及在想要自定义启动Activity的行为方式时可能有用的一些其他信息。
答案 3 :(得分:0)
我不明白所以你会想到几件事。
...
活动1 - > Button1 - >列表视图(内容A)
活动1 - > Button2 - > ListView(内容B)
活动1 - >活动2 - > Button3 - >活动1 - > ListView(内容B)
所以你可以
活动1中的
启动startActivity(intentActivity2);
在activity2中
intentResult.putExtra(“cmd”,“button3”); onbutton单击setResult(RESULT_OK,intentresult) 并完成
回到Activity1
onActivityResult resultIntent.getExtra( “CMD”)