Android:选择ListView项目并获取对象

Android:选择ListView项目并获取对象,android,listview,Android,Listview,我做了一个自定义列表视图,有两个文本视图。例如,学生姓名和卷号。。。 现在我想实现一个选择…例如..我将单击listview中的几个学生,对象应该保存在某个地方…例如: ClassList.add(new StudentList(99,"student1","code")); ClassList.add(new StudentList(70,"student2","code")); ClassList.add(new StudentList(20,

我做了一个自定义列表视图,有两个文本视图。例如,学生姓名和卷号。。。 现在我想实现一个选择…例如..我将单击listview中的几个学生,对象应该保存在某个地方…例如:

        ClassList.add(new StudentList(99,"student1","code"));
        ClassList.add(new StudentList(70,"student2","code"));
        ClassList.add(new StudentList(20,"student3","code"));
        ClassList.add(new StudentList(30,"student4","code"));

        adapter = new StudentListViewAdapter(this, ClassList,"code");
        listView.setAdapter(adapter);
ClassList2=listView.getSelectedStudents();
现在我应该可以设置另一种方法,例如:

        ClassList.add(new StudentList(99,"student1","code"));
        ClassList.add(new StudentList(70,"student2","code"));
        ClassList.add(new StudentList(20,"student3","code"));
        ClassList.add(new StudentList(30,"student4","code"));

        adapter = new StudentListViewAdapter(this, ClassList,"code");
        listView.setAdapter(adapter);
ClassList2=listView.getSelectedStudents();
这应该返回所选的学生。例如,如果我选择了学生1,学生2,它应该返回他们两个的学生列表对象,这样我也可以访问他们的卷和代码 还有另一个问题…当我取消选择时,它应该从列表中删除该对象。。 如果有人能编写一个示例代码,那将非常有帮助

我就是这样做的……但我认为这不是一个好方法

LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (ItemView == null) {
        ItemView = inflater.inflate(R.layout.customvistview_atd, parent, false);
    }

    //find the hotels to work with
    final studentlist currentList = totalClass_list.get(position);

    //fill the view
    final TextView textview_studentName = (TextView) ItemView.findViewById(R.id.textview_atd_studentName);
    textview_studentName.setText((currentList.getName()));

    final TextView textview_studentRollno = (TextView) ItemView.findViewById(R.id.textview_atd_studentRollno);
    textview_studentRollno.setText((currentList.getRoll_no() + ""));

    final CardView cardView = (CardView) ItemView.findViewById(R.id.card_view_atd);
    cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {



            for (i = 0; i < presentStudents.size(); i++) {
                if (presentStudents.get(i).getMindex() == position) {
                    System.out.println("m-index : "+presentStudents.get(i).getMindex());
                    System.out.println("position : "+position);
                    isChecked = true;
                    System.out.println("I am in the loop, I am at position: "+i);
                    me = i;
                    break;
                }
            }


            if (isChecked) {
                presentStudents.remove(me);
                isChecked = false;
                ColorDrawable[] color = {new ColorDrawable(Color.parseColor("#198b9f")), new ColorDrawable(Color.WHITE)};
                TransitionDrawable trans = new TransitionDrawable(color);
                cardView.setBackground(trans);
                trans.startTransition(1500);

                textview_studentName.setTextColor(Color.GRAY);
                textview_studentName.setTextColor(Color.GRAY);

                //cardView.setBackgroundColor(Color.WHITE);
                System.out.println("I am in isChecked");
            } else {
                presentStudents.add(new tempclass(currentList.getRoll_no(),atdCode,position));


                ColorDrawable[] colorCard = {new ColorDrawable(Color.WHITE), new ColorDrawable(Color.parseColor("#198b9f"))};
                TransitionDrawable trans = new TransitionDrawable(colorCard);
                cardView.setBackground(trans);
                trans.startTransition(1500);

                textview_studentName.setTextColor(Color.WHITE);
                textview_studentName.setTextColor(Color.WHITE);
             //   cardView.setBackgroundColor(Color.BLUE);
                System.out.println("I am in else, making it blue");
            }

        }
    });
你可以用这个

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            StudentLists studentList = listView.getItemAtPosition(i);//selected object   
            adapter.dismiss(); // If you want to close the adapter
        }
    });

到目前为止您已经尝试了什么?您可以尝试使用上下文操作栏,在这里您可以实现其中的方法来实现您的功能。参考这里@ShayanPourvatan我更新了问题