java - OnItemClickListener 未给出单击项目的索引

标签 java android autocompletetextview onitemclicklistener

我为 AutoCompleteTextView 设置了 setOnItemClickListener,并在 onItemClick 中,我已经根据所选值实现了需要发生的情况。该程序通过查看所选项目的索引值(在本例中为“int arg2”)来完成此操作。

这是代码

 mCommCode = (AutoCompleteTextView) findViewById(R.id.CommCode);
 ArrayAdapter<String> mArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, CommodityCode);

   mCommCode.setAdapter(mArrayAdapter);

   mCommCode.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {

                double finalCommodityValue = 0;
                double argument = ((double)arg2);

                if(argument < 26){

                finalCommodityValue = argument + 1.00;

                } 

唯一的麻烦是 - int arg2 的值始终为 0,如调试时所见。似乎单击的内容与传递给 onItemClick 的内容之间存在脱节。

对于如何解决这个问题有什么想法吗?

最佳答案

我认为 arg2 为 0 的问题是没有其他项目可供选择,因为您使用的 View 对象(mCommCode)是一个 TextView ,无法容纳可供选择的单个项目的列表。这个角色是使用 listView 对象来完成的。 我认为如果您决定使用 ListView 将数据源附加到以下位置,这可能会解决您的担忧:

mCommCode.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long id) {
                double finalCommodityValue = 0;
            double argument = ((double) position );

            if(argument < 26){

            finalCommodityValue = argument + 1.00;
            }
        });

您必须使用 listView 对象才能实现此目的。

关于java - OnItemClickListener 未给出单击项目的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791203/

相关文章:

android - 在Android中实现一个简单的计数器

android - 从 strings.xml 中提取值

java - 如何告诉我的开发 servlet 容器使用代理进行 http 调用?

带有文本+图像的Android自定义GridLayout

java - 谷歌应用引擎: Map parameter becomes JSonMap

android - 改造 2 依赖

android - 在单独的线程中从服务中获取 AutoCompleteTextView 建议

Android:类似于 Facebook 应用程序的自动完成 TextView

Java解析大型XML文档

java - Guava 缓存并保留已检查的异常