【问题标题】:How to make pressing an item in my ListView there will be a new Activity如何在我的 ListView 中按下一个项目会有一个新的 Activity
【发布时间】:2019-01-04 23:05:35
【问题描述】:

我有一个带有 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;
    }
}
}

【问题讨论】:

    标签: android-studio android-listview onitemclicklistener


    【解决方案1】:

    onItemClick 内的整数 position 返回被点击项的位置(例如,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;
    
         }
    }
    

    【讨论】:

    • 在 itemclick 中插入代码,但是,当您运行应用程序并单击一个项目时,应用程序只是停止认为它应该是
    • 您确实将ActivityAActivityBActivityC 替换为您自己的活动名称,对吗?应用崩溃时日志中的错误信息是什么?
    • 谢谢,我已经发现错误,您的代码运行良好,只是活动在产生应用程序将关闭时出错,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多