Android 设置单击后删除项目的Listview

Android 设置单击后删除项目的Listview,android,listview,onclicklistener,Android,Listview,Onclicklistener,你好,我的listview有问题 我有一个带有自定义arrayadapter的listview,它有12项 我已经设置了listview,当单击它在所选项目上的删除线时 更新 public class MainActivity extends AppCompatActivity { private ListView mainList; private final String[] listContent = { "1. Get Ready",

你好,我的listview有问题

  • 我有一个带有自定义arrayadapter的listview,它有12项
  • 我已经设置了listview,当单击它在所选项目上的删除线时
  • 更新

        public class MainActivity extends AppCompatActivity {
        private ListView mainList;
        private final String[] listContent = {
                "1. Get Ready",
                "2. Second ",
                "3. Third",
                "4. Fourth",
                "5. Fifth",
                "6. Sixth",
                "7. Seventh",
                "8. Eight",
                "9. Nineth",
                "10. Ten",
                "11. Eleven",
                "12. Twelve",
                "13. Look up number twelve",
                "14. Its become strikethrough too",
                "15. how to fix it?",
                "16. Please help",
                "17. Thanks",
                "18. End" };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mainList = (ListView) findViewById(R.id.listview2);
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, listContent);
            mainList.setAdapter(adapter);
    
            mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view,
                                        int position, long id) {
                    TextView text = (TextView) view;
                    text.setPaintFlags(text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
                }
    
            });
        }
    }
    
    public类MainActivity扩展了AppCompatActivity{
    私有ListView主列表;
    私有最终字符串[]listContent={
    “1.准备好”,
    “2.第二”,
    “3.第三”,
    “4.第四”,
    “5.第五”,
    “6.第六”,
    “7.第七”,
    “8.8”,
    “9.第九条”,
    “10.十”,
    “11.11”,
    “12.12”,
    “13.查12号”,
    “14.它也变得引人注目”,
    “15.如何修复?”,
    “16.请帮忙”,
    “17.谢谢”,
    “18.结束”};
    @凌驾
    创建时受保护的void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mainList=(ListView)findViewById(R.id.listview2);
    ArrayAdapter=新的ArrayAdapter(此,
    android.R.layout.simple_list_item_1,listContent);
    mainList.setAdapter(适配器);
    mainList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
    @凌驾
    公共无效onItemClick(AdapterView AdapterView,视图,
    内部位置,长id){
    TextView text=(TextView)视图;
    text.setPaintFlags(text.getPaintFlags()| Paint.STRIKE_-THRU_-text_-FLAG);
    }
    });
    }
    }
    
    我的问题是,当我点击第一个项目(数字1),然后它成为删除线,但12个项目(数字12)也删除。 看到我的照片了吗

    单击第一项:

    12号也被删除

    这是因为第一个项目已不在视图中,现在使用的是同一个视图实例

    为此,您需要实现您自己的功能,并在其中存储关于哪些项目应被删除的信息。

    然后在视图移入和移出视图时,在getView方法中设置正确的绘制标志。

    这是因为视图被重用。您需要存储该对象的位置或id,并相应地提供笔划穿透效果。希望它能帮助你。有关代码参考或帮助,请参阅下面的链接。它肯定会帮助您


    没有代码,没有人能帮你。对不起,我忘了添加,我更新了我的邮件添加了一些项目到列表中,并重复检查23是否也有突破。我更新了我的帖子,这是正确的代码吗?因为我还有错误