2011-09-28 40 views
15

Estoy usando Android 2.3.3. He creado un diseño similar,Android OnItemClickListener no funciona

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ListView android:id="@+id/mainList" android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</LinearLayout> 

Y estoy manipulando con

package org.dewsworld.ui; 

import org.dewsworld.core.NBConfig; 

import android.app.Activity; 
import android.app.ListActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ListAdapter; 
import android.widget.ListView; 

public class NewsBotActivity extends ListActivity { 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     setListAdapter(new ArrayAdapter<String>(this, 
              android.R.layout.simple_list_item_1, 
              NBConfig.topics)); 

     ListView listView = (ListView) findViewById(R.id.mainList) ; 
     listView.setOnItemClickListener(new OnItemClickListener() { 

     }); 
    } 
} 

Usando IDE eclise, cuando setthe OnItemClickListener me da el error

The method setOnItemClickListener(AdapterView.OnItemClickListener) in the type AdapterView<ListAdapter> is not applicable for the arguments (new 
    OnItemClickListener(){}) 

que pueda arregla esto [He añadido una imagen con el error] imgimg

+1

¿Está importando? Si no, intente utilizar 'new AdapterView.OnItemClickListener() {' –

+1

'Ctrl + 1' puede ser útil en eclipse;) – Gio

+1

import android.widget.AdapterView.OnItemClickListener; –

Respuesta

45

Parece haber importado el OnItemClickListener mal, prueba este lugar, y retire importación de android.view.View.OnClickListener

import android.widget.AdapterView.OnItemClickListener; 
+0

¡Guau! ¡Funciona! ¿Pero cómo puedo configurar qué Listener para importar? Caz, esto es generado automáticamente por el eclipse – Dewsworld

+1

Finalización de la importación en Eclipse, por lo que al igual que ctl-shift-o, por lo general, le da una lista de las importaciones en conflicto para elegir. – Pedantic

5

cómo por llenar en el cuerpo de su nuevo objeto mediante la definición de la función onItemClick():

public void onItemClick(AdapterView parent, View v, int position, long id) 
{ 
    // Display a messagebox. 
    Toast.makeText(this,"Your Listener Works!",Toast.LENGTH_SHORT).show(); 
} 

tratar de usar Ctrl + Shift + O en Eclipse para organizar todas sus importaciones de forma automática ...

1

Simplemente implemente OnItemClickListener en su clase.

como esto:

AdapterView.OnItemClickListener

public class ClassName extends Activity implements OnItemClickListener{}