我为 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/