它可能看起来像一个重复的,但它不是。
我的布局中有 2 AutoCompleteTextView
。从地址,到地址。我需要知道其中哪一个启动了下拉列表。
由于两者都使用相同的项目布局,我复制了它并尝试了,仍然没有运气。
AutoCompleteTextView
的初始化
fromAutoComplete = new AutoComplete(this, R.layout.fromautocomplete);
fromAutoComplete.setNotifyOnChange(true);
fromAddress = (AutoCompleteTextView) findViewById(R.id.fromAddress);
fromAddress.setAdapter(fromAutoComplete);
fromAddress.setOnItemClickListener(this);
fromAddress.setOnItemSelectedListener(this);
toAutoComplete = new AutoComplete(this, R.layout.toautocomplete);
toAutoComplete.setNotifyOnChange(true);
toAddress = (AutoCompleteTextView) findViewById(R.id.toAddress);
toAddress.setAdapter(toAutoComplete);
toAddress.setOnItemClickListener(this);
toAddress.setOnItemSelectedListener(this);
注意 R.layout.toautocomplete 和 R.layout.fromautocomplete
两者相同,如下所示。
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:minLines="3"
android:layout_marginBottom="15dp"
android:textSize="15dp"
android:text="sample text"
android:marqueeRepeatLimit="marquee_forever"/>
为了调试这些值,我放了一些日志语句
@Override
public void onItemSelected(AdapterView<?> parent, View who, int position, long id) {
Log.e("Taxeeta", ">"+parent.getId()+":"+who.getId()+":"+id) ;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.e("Taxeeta", parent.getId()+":"+view.getId()+":"+id) ;
}
日志的输出是
07-02 17:24:14.773: E/Taxeeta(12103):-1:-1:0
坦率地说,这很糟糕,为什么父母、视图和 id 的 id 会返回这样无用的值?
我在这里错过了一些非常基本的东西。