首页 > 解决方案 > 如何在arraylist中罢工和取消罢工

问题描述

我试图能够删除和取消删除已添加到数组列表中的项目。但是我无法取消它。我尝试将代码放入 if 语句中,但无法使其正常工作。

请问有人可以帮忙吗?

public class MainActivity extends AppCompatActivity {

List<String> toDoList;
ArrayAdapter<String> arrayAdapter;
ListView listView;


EditText editText;

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

    toDoList = new ArrayList<>();
    arrayAdapter = new ArrayAdapter<>(this,R.layout.list_view_layout,toDoList);
    listView = findViewById(R.id.id_list_view);

    listView.setAdapter(arrayAdapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            TextView textView = (TextView) view;
                    if (textView.getPaintFlags() > 0) {
                        textView.setPaintFlags(textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
                    }
                    else {
                        textView.setPaintFlags(textView.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG));
                    }




            }
    });

setOnItemClickListener 在第一次单击时会删除该项目,但是当再次单击该项目时,它不会取消该项目

标签: javaandroid

解决方案


你可以试试这个:

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     TextView textView = (TextView) view;
     textView.setPaintFlags(textView.getPaintFlags() ^ Paint.STRIKE_THRU_TEXT_FLAG);
}

推荐阅读