2

我有一个列表视图,其中包含我希望能够单击一个项目并将其转到另一个我播放音频的活动的国家/地区。我的列表视图:

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 就像你如何为一个按钮制作一个?

4

7 回答 7

6
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)
        {           

        }
    });

 }
}
于 2013-07-05T04:49:10.930 回答
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--
}
于 2013-07-05T04:28:50.590 回答
2

为了方便implement OnItemClickListener您的班级

添加这个onCreate

ListView listView = getListView();
listView.setOnItemClickListener(this);

onItemClick然后像这样覆盖

@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id){
    // your code
}
于 2013-07-05T04:39:14.020 回答
2

你可以使用 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

            }
        });
于 2013-07-05T04:35:14.427 回答
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);

  }
于 2013-07-05T04:29:52.200 回答
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);
    }
   });
于 2013-07-05T04:30:32.247 回答
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

        }
    });
于 2013-07-05T04:56:47.780 回答