加载活动的状态与默认状态不同

时间:2013-01-25 14:36:09

标签: android

我的申请中有两项活动。 Activity1有一个列表视图和两个按钮(比如button1和button2)。根据用户单击哪个按钮,列表视图中的内容会相应更改。默认的活动加载是在activity1中加载了button1单击内容。 在我的Activity2中,我有一个按钮(比如button3),当点击它时,必须加载activity1但是listview加载了button2点击结果,而不是显示button1点击结果的默认显示。 有关如何实现这一目标的任何帮助?在activity2中的button3的onclick事件中,我可以加载activity1,但是会加载显示button1单击结果的默认状态。

4 个答案:

答案 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”)