0

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

4

4 回答 4

0

从第二个活动发送带有标志的 Intent。在第一个活动中,请始终注意此标志并相应地触发您的第二个按钮代码。作为参考,您可以在此处或谷歌搜索“在活动之间传递数据”。

于 2013-01-25T14:42:53.570 回答
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");
于 2013-01-25T14:48:16.640 回答
0

您可以通过在 Intent 上添加 Extras 来做到这一点。现在,当您从 Activity2 启动 Activity1 时,您的代码可能如下所示:

Intent intent = new Intent(Activity2.this, Activity1.class);
startActivity(intent);

您可以使用 Intent 上的putExtra()方法在此 Intent 上设置一个键值对(称为额外),使其看起来像这样。

Intent intent = new Intent(Activity2.this, Activity1.class);
intent.putExtra("LIST_TO_DISPLAY", "LIST_2");    
startActivity(intent);

(键)的第一个参数putExtra()始终是字符串,第二个参数(值)可以是许多不同的数据类型。这也是一个字符串。

一旦 Activity1 启动,您可以通过使用来获取 Intent,getIntent()然后从中提取额外的内容,全部在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
    }
}

这是 Intent Class 的文档。您可以找到所有 put 和 get Extra 方法的说明,以及一些其他信息,这些信息在您想要自定义启动活动的行为方式时可能会有所帮助。

于 2013-01-25T14:53:08.487 回答
0

我不明白,所以你会想到几件事。

...

Activity1 -> Button1 -> 列表视图(内容 A)

Activity1 -> Button2 -> ListView(内容 B)

Activity1 -> Activity2 -> Button3 -> Activity1 -> ListView(内容 B)

所以你可以

在活动1

开始活动(intentActivity2);

在活动2

intentResult.putExtra("cmd", "button3"); onbutton 点击​​ setResult(RESULT_OK,intentresult) 并完成

回到活动1

onActivityResult resultIntent.getExtra("cmd")

于 2013-01-25T14:58:00.943 回答