我有一个活动,其中包含一个按钮和2个自动完成小部件。对于我正在使用的按钮
addProductButton.setOnClickListener(this);
以及我正在使用的2个自动完成小部件
supplierTextView.setOnItemClickListener(this);
现在,当我选择第一个自动完成时,它会运行此代码,但是当我点击第二个自动完成中的项目时它也没有进入if循环它运行相同的代码但没有进入其他
@Override
public void onItemClick(AdapterView<?> adapter, View view, int pos, long rowId) {
// TODO -
String supName = supplierTextView.getText().toString();
String proName = productTextView.getText().toString();
System.out.println("Name selected "+ view.getId());
if(view == supplierTextView)
{
Log.d("Supplier Name selected", supName);
}
else if(view == productTextView)
{
Log.d("Product Name selected", proName);
}
loadProducts(supName);
handleProductSuccess(filteredProduct);
}
答案 0 :(得分:0)
OnItemClickListener用于侦听自动填充文本字段项的点击次数。
也就是说,当您点击自动填充建议时,您会收到与该建议相对应的视图及其索引而不是 AutocompleteTextView本身。
如果您希望在单击视图本身时收到通知,请在AutocompleteTextViews上使用OnClickListener。
如果要对文本字段的文本内容中的更改做出反应,可以使用TextWatched侦听器界面。有关详细信息,请参阅TextView API。
答案 1 :(得分:0)
在此声明中。
if(view == supplierTextView)
{
Log.d("Supplier Name selected", supName);
}
else if(view == productTextView)
{
Log.d("Product Name selected", proName);
}
视图的类型是TextView,所以什么也没发生。
如果您想知道触发2个AutoCompleteTextView中的哪一个。
调用此声明
supplierTextView.setOnClickListener(listener);
和
productTextView.setOnClickListener(listener);
并在onClick()
public void onClick(View view)
{
if(view == supplierTextView)
{
Log.d("Supplier Name selected", supName);
}
else if(view == productTextView)
{
Log.d("Product Name selected", proName);
}
}
不要忘记实现View.OnClickListener
答案 2 :(得分:0)
如果要将click事件提供给自动完成视图,请将setOnItemClickListener更改为setOnClickListener。在onClick方法中放入if else条件。它会起作用