实施方法:在列表视图中多选。所选项目应更改为红色

时间:2019-05-15 14:47:17

标签: java android android-listview

我正在创建一个orandid应用程序以捕获用户的心情。我目前已设置一个列表视图,以显示屏幕上可用的心情选项。

我现在正在尝试实现一项功能,该功能允许用户通过触摸屏幕上的多个项目来选择列表视图中的多个项目。当用户选择该项目时,应以某种方式突出显示该项目,以便很明显已选择了该项目,即背景颜色发生了变化。目前,我已经在这里进行设置,可以在其中选择一项,并且它变为红色。但是,我希望用户能够选择多个项目,并且在用户选择下一个继续前进的按钮之前,它们的背景色都应该变为红色。

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

    listView = findViewById(R.id.distortedListViewWorkout);
    MyAdapter adapter = new MyAdapter(this, mTitle, images);
    listView.setAdapter(adapter);
    button = findViewById(R.id.nextBtn);
    button.setOnClickListener(new View.OnClickListener() {

        /**
         * @param v
         */
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(WorkoutDistortedThoughtsActivity.this, WorkoutChallengeActivity.class);
            startActivity(intent);
            finish();
        }
    });

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

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

            if (position >=0 ) {
                view.setSelected(true);

            }
        }
    });
}

     class MyAdapter extends ArrayAdapter<String> {

        Context context;
        String rTitle[];
        int rImages[];

        MyAdapter (Context c, String title[], int images[]){
            super(c, R.layout.row, R.id.titleEtWorkout, title);
            this.context = c;
            this.rTitle = title;
            this.rImages = images;

        }