2011-09-28 16 views
15

Sto usando Android 2.3.3. Ho creato un layout simile,Android OnItemClickListener non funziona

<?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> 

E sto manipolando 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() { 

     }); 
    } 
} 

Utilizzando eclise IDE, quando ho Set formazioneIl OnItemClickListener mi dà l'errore

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

posso risolvere questo [Ho aggiunto un'immagine con l'errore] imgimg

+1

Stai importando AdapterView.OnItemClickListener? In caso contrario, prova ad utilizzare 'new AdapterView.OnItemClickListener() {' –

+1

'Ctrl + 1' potrebbe tornare utile in eclissi;) – Gio

+1

import android.widget.AdapterView.OnItemClickListener; –

risposta

45

Sembra aver importato l'OnItemClickListener sbagliato, provate questo invece, e rimuovere l'importazione di android.view.View.OnClickListener

import android.widget.AdapterView.OnItemClickListener; 
+0

Wow! Funziona! Ma come posso impostare quale Listener importare? Caz, questo è generato automaticamente dall'eclissi – Dewsworld

+1

Il completamento dell'importazione in Eclipse, ad esempio ctl-shift-o, di solito ti dà un elenco di importazioni in conflitto tra cui scegliere. – Pedantic

5

come sulla compilazione corpo del nuovo oggetto definendo la) funzione 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(); 
} 

prova utilizzando ctrl + shift + o in eclipse per organizzare automaticamente tutte le importazioni ...

1

Basta implementare OnItemClickListener nella tua classe.

in questo modo:

public class ClassName extends Activity implements OnItemClickListener{}