如何在我的 ListView 中按下一个项目会有一个新的 Activity

How to make pressing an item in my ListView there will be a new Activity

我有一个带有 AdapterView 的 ListView,但我想知道如何通过单击一个项目来实现这一点,然后会有一个新的 Activity。我已经有 onItemClick 事件,我想知道我应该实现什么代码,以便通过在列表视图中制作每个项目,将有一个特殊的 Activity。

public class Alumnos extends AppCompatActivity {

ListView list;
private Toolbar toolbar;
String titulos[] = {"Vicente Nevarez", "Giovanny Alvarado", "Rogelio Lanka",
        "Alan Barrera",
        "Fatima Botello",
        "Paola Gomez",
        "Eric Zapata",
        "Jose Juan Lozano",
        "Alondra Flores",
        "Yoali"};

String descripcion[] = {"Rendimento: Bueno  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B", "Rendimento: Medio  Grupo: 4B", "Rendimento: Malo  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B", "Rendimento: Malo  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B", "Rendimento: Medio  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B"};

int imgs [] = {R.drawable.movies,
        R.drawable.movies,
        R.drawable.movies,
        R.drawable.alondra,
        R.drawable.alan,
        R.drawable.fatima,
        R.drawable.paola,
        R.drawable.movies,
        R.drawable.alondra,
        R.drawable.yoaly,};


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


    list = findViewById(R.id.list1);
    toolbar  = (Toolbar) findViewById(R.id.ToolbarAlu);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle("Alumnos Agregados");




    MyAdapter adapter = new MyAdapter(this, titulos, imgs, descripcion);
    list.setAdapter(adapter);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            if (position==0){
                Toast.makeText(Alumnos.this, "El mas chido", Toast.LENGTH_SHORT).show();
            }

        }
    });


}

//ListView 的适配器:

class MyAdapter extends ArrayAdapter<String>{
    Context context;
    String myTitles[];
    String myDescripciones[];
    int[] imgs;

    MyAdapter(Context c, String[] titulos, int[] imgs, String[] descripcion){
        super(c,R.layout.activity_listview, R.id.txtt1, titulos);
        this.context=c;
        this.imgs=imgs;
        this.myTitles=titulos;
        this.myDescripciones=descripcion;
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        LayoutInflater layoutInflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View listviewa = layoutInflater.inflate(R.layout.activity_listview, parent, false);

        CircleImageView images = listviewa.findViewById(R.id.logo);
        TextView myTilte = listviewa.findViewById(R.id.txtt1);
        TextView myDescripcion = listviewa.findViewById(R.id.txtt2);
        images.setImageResource(imgs[position]);
        myTilte.setText(titulos[position]);
        myDescripcion.setText(descripcion[position]);


        return listviewa;
    }
}
}

position 内的整数 onItemClick returns 单击项目的位置(例如第一个列表项目为 0)。因此,您可以添加一个开关来检查 position 的值并为每个值启动不同的 Activity。

代码如下所示:

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

    switch(position) { 
        case 0:
        startActivity(new Intent(getApplicationContext(), ActivityA.class));
        break;

        case 1:
        startActivity(new Intent(getApplicationContext(), ActivityB.class));
        break;

        case 2:
        startActivity(new Intent(getApplicationContext(), ActivityC.class));
        break;

     }
}