android 如何为AutoCompleteTextView设置setOnClickListener?

js81xvg6  于 2023-05-12  发布在  Android
关注(0)|答案(5)|浏览(197)

我正在为AutoCompleteTextView选择文本。之后我想将setonclicklistener应用到选定的文本。如果有任何想法。

ArrayAdapter<String> arrAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, sampleACTV); 
 AutoCompleteTextView ACTV = (AutoCompleteTextView) findViewById(R.id.spinner);
 ACTV.setAdapter(arrAdapter); 

 }
 private static final String[] sampleACTV = new String[]
         { "android","androidpeople.com","iphone","blackberry" };

在我的示例中,我选择了一个类似android的Intent调用,以进入嵌套活动

agxfikkp

agxfikkp1#

AutoCompleteTextView中有不同的单击侦听器。
第一种方式是在布局xml中,你可以定义onCLick属性,用你想要被调用的函数,在下面的例子中,点击。

<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="clicked" />

然后,在Activity中定义单击的函数。

public void clicked(View v) { 
  // on click do ..
}

或者你可以直接在代码中设置它:

ACTV.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        finish();
    }
});

如果你想在用户点击下拉列表中的一个项目时设置点击监听器,还有另一个方法,setOnItemClickListener

ACTV.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
        //... your stuff
    }
})

还有最后一个选项,当用户实际使用 setOnItemSelectedListener 在下拉列表中选择一个项目时,设置点击监听器。

ACTV.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected (AdapterView<?> parent, View view, int position, long id) {
        //... your stuff
    }
    @Override
    public void onNothingSelected (AdapterView<?> parent) {
        //... your stuff
    }
})

参考文献:
http://developer.android.com/reference/android/widget/AutoCompleteTextView.html
祝你好运!

ruoxqz4g

ruoxqz4g2#

您需要创建自定义适配器,并在getView()中为视图分配OnClick事件

bakd9h0s

bakd9h0s3#

创建一个自定义适配器,并在getView()方法中为每个视图放置setonclicklistener并调用接口方法。
覆盖片段中的接口并将其传递给适配器,这样onclick就可以在片段中获得click。

interface IOnClick{
    fun onClick(model: Model)
}

override fun onClick(model: Model) {
        viewModel.setFormDataOnIdSelection(Model)
        binding.tietName.dismissDropDown()
    }

override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
    newView.setOnClickListener {
        iOnClick.onClick(resAllLeadsModel)
    }
}

binding.tietName.setOnItemClickListener { parent, view, position, id ->
    viewModel.setFormDataOnIdSelection(listOfItems[view.tag.toString().toInt()])
}

这将在任何情况下按照您的要求工作。
如果你有任何建议,请告诉我,谢谢。

hsgswve4

hsgswve44#

这是一个很老的帖子,所以我不确定这会有多大帮助,但...在Kotlin中,这真的很容易。我有一个文本自动完成,是从字典中填充的值,并访问一个名为searchAutoComplete的自动完成的下拉文本...

searchAutoComplete.setOnItemClickListener { 
           parent, view, position, rowId ->
            Log.d(TAG, "searchAutoComplete: setOnItemClickListener," +
                    "view -> ${view.javaClass.simpleName}, " +
                    "pos = $position. " +
                    "text = ${(view as TextView).text}")
        }
s71maibg

s71maibg5#

这对我来说很完美

Actvl.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected (AdapterView<?> parent, View view, int position, long id) {
        //... your stuff
    }
    @Override
    public void onNothingSelected (AdapterView<?> parent) {
        //... your stuff
    }
});

相关问题