2011-12-27 37 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

相關問題