2012-12-04 60 views
0

我有一個ListView, 我想創建一個OnItemSelectedListner,我在代碼中做的,我稱之爲mylistener。 爲什麼list.setOnItemSelectedListener不接受mylistener?爲什麼我的ListView不接受我的自定義OnItemSelectedListener?

感謝您的幫助

ListView list = (ListView)findViewById(android.R.id.list); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1,array); 
     list.setAdapter(adapter); 
     list.setOnItemSelectedListener(mlistener); 
     AdapterView.OnItemSelectedListener mlistener = new  AdapterView.OnItemSelectedListener(){ 
     @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       Toast.makeText(getApplicationContext(),"selezionato",  Toast.LENGTH_LONG).show();    
      } 
      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 
      } 

     }; 
+2

申報'mlistener' ** **前設置它的'ListView'。 – Luksprog

+0

Eclipse警告「mlistener無法解析爲變量」 –

+0

@Luksprog謝謝,我以爲我之前做過。 –

回答

3

還應當聲明並使用它之前初始化mlistener

2

嘗試之前list.setOnItemSelectedListener(mlistener);

0

創建的偵聽器只是重新安排你的代碼:

ListView list = (ListView)findViewById(android.R.id.list); 
ArrayAdapter<String> adapter = new ArrayAdapter<String> this,android.R.layout.simple_list_item_1,array); 
AdapterView.OnItemSelectedListener mlistener = new AdapterView.OnItemSelectedListener(){ 
    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     Toast.makeText(getApplicationContext(),"selezionato", Toast.LENGTH_LONG).show();    
    } 
    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 
    } 
}; 

list.setAdapter(adapter); 
list.setOnItemSelectedListener(mlistener); 
相關問題