java—在listview中单击删除指定行时如何隐藏特定行

u91tlkcl  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(238)

我可以隐藏特定的行,但是我回到listview活动,它将再次显示我隐藏的特定行。下面是我的代码:

listView.setLongClickable(true);
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            public boolean onItemLongClick(AdapterView<?> parent, final View v, final int position, long id) {
                //Do your tasks here
                textViewID = (TextView) v.findViewById(R.id.text_customerid);
                custid = textViewID.getText().toString();
                AlertDialog.Builder alert = new AlertDialog.Builder(
                        TableRecordActivity.this);
                alert.setTitle("Alert!!");
                alert.setMessage("Are you sure to delete record");
                alert.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    //databaseHelper = new DatabaseHelper(getApplicationContext());
                    //sqLiteDatabase=databaseHelper.getReadableDatabase();
                    //databaseHelper.deleteCustomerInformation(custid,sqLiteDatabase);
                    LinearLayout parentLayout = (LinearLayout) v.findViewById(R.id.linearLayout);
                    parentLayout.setVisibility(View.GONE);
                    //Intent intent = new Intent(getApplication(),TableRecordActivity.class);
                    //intent.putExtra("user_id2",user_id2);
                    //intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    //startActivity(intent);
                    Toast.makeText(getApplicationContext(),"Customer deleted",Toast.LENGTH_LONG).show();
                    dialog.dismiss();

                }
            });
            alert.setNegativeButton("NO", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {

                    dialog.dismiss();
                }
            });

            alert.show();

            return true;
        }
    });
p4rjhz4m

p4rjhz4m1#

您已经获得了所单击项目的位置,请单击此处:

public boolean onItemLongClick(AdapterView<?> parent, final View v, final int position, long id) {
}

现在从数据源(arraylist?)中删除该项:

list.remove( position );

并刷新列表:

adapter.notifyDataSetChanged();
pb3s4cty

pb3s4cty2#

您需要使用通知列表视图 notifyDataSetChanged() 方法。既然你得到了这个职位 setOnItemLongClickListener() 借助于此,您可以从列表(或)数组中删除特定对象,然后需要更新适配器中的列表并通知适配器。希望这个链接是有用的。
在上面的链接中,说明了如何删除 longClick 将更新后的数据发送到适配器并通知列表,这一点得到了明确的解释。

qv7cva1a

qv7cva1a3#

您需要删除列表中链接到适配器的元素。

yourArrayList.remove(position);

相关问题