简体   繁体   中英

How to switch to another activity using listview in android

I am trying to switch on another activity using listview by clicking on it's item but I couldn't I just got an error. Here is the code.

package com.example.listview;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

 ListView listView ;

String[] value = {"firstactivity", "secondactivity"};
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  ArrayAdapter adapter = new ArrayAdapter<String>(this, 
  R.layout.activity_listview, value);

  ListView listView = (ListView) findViewById(R.id.activity);
  listView.setAdapter(adapter);
  }
}

I'm not sure about your ArrayAdapter second parameter, you can try:

ArrayAdapter adapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, value);

The second parameter defines the layout for each of the elements of your list. (A simple item in this case).

Then you should set an item click listener on your list:

listView.setOnItemClickListener(new OnItemClickListener() {
 void onItemClick(AdapterView<?> parent, View view, int position, long id)
 {
  if(position == 1)
   //start activity 1
  else if(position == 2)
   //start activity 2
 }
});

To start an Activity use:

Intent intent = new Intent(this, <your activity class here>.class);
startActivity(intent);

This will help you

  // Create adpater
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
               android.R.layout.simple_list_item_1, android.R.id.text1, value);

  // Assign adapter to ListView
        listView.setAdapter(adapter); 

  // ListView Item Click Listener
        listView.setOnItemClickListener(new OnItemClickListener() {

              @Override
              public void onItemClick(AdapterView<?> parent, View view,
                 int position, long id) {

               // ListView Clicked item index
               int itemPosition     = position;

               // ListView Clicked item value
               String  itemValue    = (String) listView.getItemAtPosition(position);

                Intent intent = new Intent(this, <your activity class here>.class);
                startActivity(intent);

              }

         }); 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM