2013-04-11 13 views
6

मैं अपना सेटऑनटिमक्लिक लिस्टर काम करने की कोशिश कर रहा हूं, लेकिन जब मैं विधि जोड़ता हूं, ग्रहण कहता है कि मुझे "@ ओवरराइड" एनोटेशन को हटा देना चाहिए, अगर मैं करता हूं, श्रोता काम नहीं करता है।setOnItemClickListener काम नहीं कर रहा

list.setOnItemClickListener(new OnItemClickListener() { 
    @Override //<-- this is the annotation that eclipse says I should remove 
    public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 


    } 
}); 

Am वास्तव में लगता है कि समस्या विधि ही नहीं है, मैं लगता है कि यह कुछ और है: बात यह है कि मैं "क्लिक" घटना को पकड़ने और कुछ करना ... यहाँ मेरी तरीका है करने की आवश्यकता है । कृपया मेरे गतिविधि करने के लिए एक नज़र रखना और मुझे बताओ कि क्या गलत कर रहा हूँ:

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.HashMap; 
import android.app.Activity; 
import android.content.Intent; 
import android.database.SQLException; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.ListView; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 


public class Sounds extends Activity{ 

ListView list; 
    LazyAdapter adapter; 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);   
     setContentView(R.layout.list_table); 
     list=(ListView)findViewById(R.id.list); 
     ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>(); 
     DB_Helper myDbHelper = new DB_Helper(this);  
     try { 
      myDbHelper.createDataBase(); 
     }catch (IOException ioe) { 
       throw new Error("Unable to create database"); 
     } 

     try { 

      myDbHelper.openDataBase(); 
      String[] columns = new String[3]; 
      columns[0] = "id_Category"; 
      columns[1] = "category_name"; 
      columns[2] = "image_name"; 
      songsList = myDbHelper.selectAll("Categories",columns); 
     }catch(SQLException sqle){ 
      throw sqle; 
     } 

    adapter = new LazyAdapter(this, songsList);   
    list.setAdapter(adapter); 

    // Click event for single list row 
    list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 

      //ToDo something... 
     } 
    }); 
} 




@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.about_sounds, menu); 

     return true; 
    } 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
    case R.id.about_sounds_item1: 
     Intent talesToLearnActivity = new Intent(Sounds.this, AboutSounds.class); 
      startActivity(talesToLearnActivity); 
     break; 
    default: 

     break; 
    } 

    return true; 
} 
} 

अगर मैं टिप्पणी निकालने, मेरे विधि न घटना पर कब्जा। अगर मैं इसे नहीं हटाता, तो मेरा ऐप संकलित नहीं होता है। बीटीडब्लू एंड्रॉइड 2.2 एसडीके

+0

क्या यह आपके 'ऑनक्रेट() 'के अंदर है? – codeMagic

+0

@codeMagic ऐसा लगता है कि यह है। – Cristian

+0

हां, यह ऑनक्रेट() –

उत्तर

3

प्रोजेक्ट गुणों की जांच करें और सुनिश्चित करें कि Java Compiler -> JDK Compliance -> Complier Compliance Level 1.6 है।

+0

यह अन्य '@ ओवरराइड' उपयोग के बारे में शिकायत क्यों नहीं करेगा? – Cristian

+0

समस्या को हल करता है। धन्यवाद आदमी.- –

+0

'ओवरडिडे 'पहली बार जेडीके 1.5 में पेश किया गया था, लेकिन इसे जावा 1.6 में विधि कार्यान्वयन के लिए विस्तारित किया गया था। –

2

अपनी परियोजना में गुणों की जांच करें और सुनिश्चित करें कि जावा कंपाइलर -> जेडीके अनुपालन -> अनुपालन अनुपालन स्तर 1.6 है। अन्यथा यह काम नहीं करेगा।

संबंधित मुद्दे