2012-12-04 58 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); 
相关问题