2013-07-05 60 views
1

我有一個列表視圖,這些列表視圖中填充了一些國家/地區,我希望能夠點擊某個項目並將其轉到另一個播放音頻的活動。 我的列表查看:如何將Click Listener添加到ListView?

public class MainActivity extends ListActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_selectable_list_item,getResources() 
    .getStringArray(R.array.countries))); 
    } 
    } 

我該如何去有關添加的onClick就像你會如何做一個按鈕?

回答

5
ListView listView = getListView(); // hear bind your listview 

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_selectable_list_item,getResources().getStringArray(R.array.countries))); 

listView.setAdapter(ListAdapter); 
listView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> listView, View itemView, int itemPosition, long itemId) 
     {   

     } 
    }); 

} 
} 
3

要麼使用getListView()建在列表視圖訪問和操作上:

getListView().setOnItemClickListener(); 

或者,覆蓋onListItemClicked()ListActivity

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    //--do stuff-- 
} 
2

覆蓋onItemClick()方法

@Override 
public void onItemClick(AdapterView<?> arg0, View view, int arg2, 
       long arg3) { 
    // TODO Auto-generated method stub   
    Intent intent = new Intent(getApplicationContext(), Activity2.class); 
    startActivity(intent); 

    } 
2

由於您的活動來延長ListActivity

ListView lv = getListView(); 
    lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> listView, View itemView, int itemPosition, long itemId) 
    {   
      Intent launchActivity = new Intent(FirstActivity.this, SecondActivity.class); 
      startActivity(launchActivity); 
    } 
    }); 
2

U可以使用context.getlistview()來獲取列表視圖。並像這樣將setOnItemClickListener添加到列表視圖中。

context.getlistview().setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       //Do whatever you want here 

      } 
     }); 
2

爲了使它得心應手只是implement OnItemClickListener到類

添加這onCreate

然後覆蓋onItemClick這樣

@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id){ 
    // your code 
} 
1

您必須使用setOnItemClickListener方法。 這裏是代碼

listview.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      // TODO Auto-generated method stub 
      // do your code here 

     } 
    });