2011-12-27 25 views
17

Estoy seleccionando texto para AutoCompleteTextView.Después de que deseo aplicar setonclicklistener al texto seleccionado. Si alguno tiene una idea.cómo configurar setOnClickListener para AutoCompleteTextView?

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" }; 

en mi ejemplo estoy seleccionando uno como android llamada la intención de ir a Acitivity nido

+0

http://developer.android.com/reference/android/widget/AutoCompleteTextView.html#setOnItemClickListener(android.widget.AdapterView.OnItemClickListener) –

Respuesta

50

Hay diferentes detectores de clics en AutoCompleteTextView.

La primera forma es en el diseño xml, puede definir el atributo onCLICK, con la función que desea que se llame, en el siguiente ejemplo, hacer clic.

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

Luego, en su actividad, usted define la función en la que se hizo clic.

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

O se puede establecer directamente en el código:

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

Si desea configurar el detector de clics cuando el usuario hace clic en un elemento de la lista desplegable hay otro método, el setOnItemClickListener.

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

y tiene una última opción, para ajustar el detector de clics cuando el usuario realmente selecciona un elemento de la lista desplegable usando 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 
    } 
}) 

Referencias:

http://developer.android.com/reference/android/widget/AutoCompleteTextView.html

buena suerte!

+1

¿No cree que el método 'clicked' debería tener' (Views view) 'como argumento? –

+0

De lo contrario, +1 por esfuerzo. –

+0

Malo, lo extrañé. Editado! Gracias por la corrección. – caiocpricci2

2

Es necesario crear adaptador personalizado y asignar evento OnClick a la vista en getView()

+1

que funciona, pero eso no es una buena solución ... –

+1

que dijo esto no es una buena sugerencia? Estás asignando un clic en una vista y eso es tan natural ¿no? –

Cuestiones relacionadas