0

我在这里问了一个问题 并得到了答案

好的,我只需要在 xml 文件中添加包名,所以这个微调器现在可以工作了,但是又出现了另一个问题。要选择在初始化期间选择的元素,我必须单击它两次。我想,这是因为我使用计数器来检查用户是否选择了项目:

variables.spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
                    @Override

                    public void onItemSelected(AdapterView<?> parent, View view,
                            int position, long id) {    
                        CharSequence t2 = (CharSequence) parent.getItemAtPosition(position);
                        variables.wall=t2.toString();
                        if(i>0){ 
                            new DownloadRow().execute();
                        }
                        if(i==0) i++;

                    }
                    @Override
                    public void onNothingSelected(AdapterView<?> arg0) 
                        // TODO Auto-generated method stub
                    }      
                });

我该怎么做才能使用户只需要单击一次选定的项目?

只是一个提示(即您根本不需要任何处理),不,这是一个错误的变体。情况是,当用户单击位置 0(或任何其他位置)的元素时,新的 DownloadRow().execute() 必须启动。但是现在(我不知道为什么)如果用户点击零位置的元素,什么也不会发生。如果他再次单击它,DownloadRow().execute() 就会启动,因为它必须在第一个用户单击后完成。看起来如果在这个微调器的初始化过程中没有发生 var i 的增量(或其他一些问题)。但是,如果位置==0,我再次增加。然后 DownloadRow().execute() 自动启动,用户自己不选择 iem。

4

2 回答 2

0

找到了解决方案。

 if(i==0) {
        if(position==0) variables.spinner1.setSelection(0);
        i++;
}
于 2013-01-09T01:42:51.907 回答
0

我不确定我是否完全理解您在这里尝试做的事情,但我认为如果您将 if 语句更改为:

if(position>0){ 
    new DownloadRow().execute();
}

You should get the behaviour that you want, as this starts DownloadRow when an item other than the default value is selected.

如果您需要用户可选择的默认值,那么我建议您改为使用默认值(在位置 0),这只是一个提示(即您根本不需要任何处理),而其他所有位置都是您想调用的选项 DownloadRow().execute

于 2013-01-08T15:59:27.780 回答