0

我的问题是,在 ListView/Database 中,只有最上面的“评论”被删除,但我想要,被按下的“评论”被删除。

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

        datasource = new CommentsDataSource(this);
        datasource.open();

        List<Comment> values = datasource.getAllComments();

        // Use the SimpleCursorAdapter to show the
        // elements in a ListView
        ArrayAdapter<Comment> adapter = new ArrayAdapter<Comment>(this,
            android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);




        this.getListView().setClickable(true);
           this.getListView().setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

                    Toast.makeText(MainActivity.this, "postion: " +    getListView().getSelectedItemPosition(), Toast.LENGTH_SHORT).show();

这是问题所在,即 getcount > 0。

                    ArrayAdapter<Comment> adapter = (ArrayAdapter<Comment>) getListAdapter();
                    Comment comment = null;
                    if (getListAdapter().getCount() > 0) {
                        comment = (Comment) getListAdapter().getItem(0);
                        datasource.deleteComment(comment);
                        adapter.remove(comment);
                      }
                    return;
                }});
           }
4

1 回答 1

0

使用 getItem(0) 总是会删除适配器中的第一项(因此也是列表视图)。

如果要在单击项目时将其删除,请在 onItemClick 中使用以下代码。

Comment comment = (Comment) adapter.getItem(position);
datasource.deleteComment(comment);
adapter.remove(comment);

这里的所有都是它的。

于 2013-01-01T22:11:34.800 回答