0

我在我的应用程序中使用微调器。在微调器中选择索引后,我打开

一个新的活动,然后回到第一个。现在我的微调器正在显示之前选择的值,如果我再次选择相同的索引,则没有任何反应。

文档说onItemSelectedListener如果索引与以前的索引不同,则调用。当我回来时,我无法将其设置为默认值(0)。

那么有没有其他解决方案可以做到这一点?请帮我。谢谢。这是我的代码:

companyspin.setOnItemSelectedListener(new OnItemSelectedListener() {
            public void onNothingSelected(AdapterView<?> arg0) {
            }

            public void onItemSelected(AdapterView<?> arg0,
                    android.view.View arg1, int arg2, long arg3) {
                Object o = companyspin.getSelectedItem();
                network = CheckNetworkStateReceiver.isOnline(context);
                selectCompany = o.toString().trim();
                Data.homeCommunityValue = arg2;
                setCompanyList(arg2);
                flagCatageory = false;
                try {
                    tracker.trackEvent("Home", // Category
                            "Drop Down Selection", // Action
                            selectCompany, // Label
                            arg2); // Value
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });``
4

2 回答 2

0

由于您希望在返回主要活动时选择第一项,您可以尝试

companyspin.setSelection(0);

onCreate()主要活动中。

于 2012-04-24T07:01:44.590 回答
0

您在微调器中选择新活动后立即开始?

只需从 onItemSele.... 侦听器中的活动所需的微调器中获取数据。放 mySpinner.setSelection(your_position)

在您的新活动开始之前。如果您希望它在微调器中保持相同的值,激活您的选择的按钮似乎更容易,并且对于用户来说更不容易出错,具体取决于选择的用途。

编辑:之后选择仍然相同,因此回调永远不会触发。您可以在位置(0)放置一个安慰剂对象,其中包含一些信息文本“选择此处...”,您可以在有效选择后使用 setSelection 返回该对象。如果它是一个有效的选择或安慰剂,只需在监听器中添加一个检查。

于 2012-04-20T11:41:29.463 回答