2分AutoCompleteTextView的,怎么知道已经选择了哪个视图(2 AutoComple

2019-10-18 08:10发布

它可能看起来像一个重复的 ,但事实并非如此。

我有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为什么会回来这种无用的价值?

我在这里缺少真正的基本的东西。

Answer 1:

我想我想通了。 答案是2倍。

  1. id值通过返回onItemClick用于第一自动完成用于第二自动完成返回0,1

    07-02 17:24:14.773:E / Taxeeta(12103):-1:-1:0

    07-02 17:24:14.773:E / Taxeeta(12103):-1:-1:1

  2. 布局的TextView的应该有编号的。 这是在视图参数返回onItemClick

对于FromLayout

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fromautocomplete"
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"/>

对于ToLayout

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toautocomplete"
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"/>


文章来源: 2 AutoCompleteTextView's, how to know which view has been selected