2011-12-27 66 views
17

我正在为AutoCompleteTextView选择文本。我想将setonclicklistener应用于选定的文本。如果有任何想法。如何为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调用的意图去鸟巢胡亚蓉

+0

http://developer.android.com/reference/android/widget/AutoCompleteTextView.html#setOnItemClickListener(android.widget.AdapterView.OnItemClickListener) – 2011-12-27 12:19:17

回答

50

在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" /> 

然后,在您的活动中,您定义了单击的函数。

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

祝你好运!

+1

你不觉得'clicked'方法应该有'(Views view)'作为参数吗? – 2011-12-27 13:05:35

+0

否则为+1。 – 2011-12-27 13:05:43

+0

我的不好,我错过了。编辑!感谢您的更正。 – caiocpricci2 2011-12-27 14:33:49

2

您需要创建自定义适配器和getView(OnClick事件分配给视图)

+1

这样的作品,但是这不是一个好的解决办法... – 2013-02-07 16:34:39

+1

这是谁说的不是一个好建议吗?你正在分配一个视图点击,这是非常自然的权利? – 2015-09-07 07:51:31

相关问题