2

I have a List View which is populated with countries I want to be able to click a an item and have it go to another activity in which i play an audio. my list View:

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)));
     }
    }

How do I go about adding a onClick just like how you would make one for a button??

babaysteps
  • 393
  • 1
  • 5
  • 14
  • Possible duplicate of [How to handle ListView click in Android](https://stackoverflow.com/questions/2468100/how-to-handle-listview-click-in-android) – DarkCygnus May 01 '18 at 00:28

7 Answers7

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

        }
    });

 }
}
Karan Mavadhiya
  • 1,042
  • 8
  • 23
3

Either use getListView() to access built in list view, and operate on that:

getListView().setOnItemClickListener();

Or, override onListItemClicked() in ListActivity:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    //--do stuff--
}
S.D.
  • 29,290
  • 3
  • 79
  • 130
2

override onItemClick() method

 @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);

  }
Michael Shrestha
  • 2,547
  • 19
  • 30
2

Since your activity extends 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);
    }
   });
Raghunandan
  • 132,755
  • 26
  • 225
  • 256
2

U can use context.getlistview() to get the listview. and add setOnItemClickListener to the listview like this.

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

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

            }
        });
shreyas
  • 2,166
  • 3
  • 18
  • 30
2

To make it handy just implement OnItemClickListener to your class

Add this in onCreate

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

then override onItemClick like this

@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id){
    // your code
}
R9J
  • 6,605
  • 4
  • 19
  • 25
1

You have to use the setOnItemClickListener method. Here is the code

 listview.setOnItemClickListener(new OnItemClickListener() {

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

        }
    });
Preet_Android
  • 2,332
  • 5
  • 25
  • 43