为了账号安全,请及时绑定邮箱和手机立即绑定

ListView Items 的点击问题

ListView Items 的点击问题

Cats萌萌 2019-03-22 19:15:25
ListView获取信息保存在本地数据库然后再显示信息。我想点击listview的items时删除它们,如何实现?public class Notepad extends ListActivity {     public static final int INSERT_ID = Menu.FIRST;     EditText notes;     Button add;     ListView lv;     String currentDateTimeString = DateFormat.getDateInstance().format(             new Date());     private NotesDbAdapter mDbHelper;     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.notepad_list);         mDbHelper = new NotesDbAdapter(this);         mDbHelper.open();         fillData();         Button add = (Button) findViewById(R.id.addNote);         // ListView lv = (ListView) findViewById(R.id.list);         add.setOnClickListener(new View.OnClickListener() {             public void onClick(View v) {                 createNote();             }         });         // lv.setOnItemClickListener(new OnItemClickListener() {         //         // public void onItemClick(AdapterView<?> parent, View view,         // int position, long id) {         // // When clicked, show a toast with the TextView text         //         // try {         // Toast.makeText(getApplicationContext(),         // ((TextView) view).getText(), Toast.LENGTH_SHORT)         // .show();         //         // } catch (ClassCastException e) {         // Toast.makeText(getApplicationContext(), "Error",         // Toast.LENGTH_SHORT).show();         // }         //         // };         //         // });     }ListView:<ListView         android:id="@id/android:list"         android:layout_width="wrap_content"         android:layout_height="402dp"         android:layout_alignParentBottom="true"         android:layout_alignParentLeft="true"         android:layout_below="@+id/note" >     </ListView>
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

在程序中重写SimpleCursorAdapter.setViewBinder(),使用数据库中的 ID 来设置 ListView 里 Views 的 Tag,删除 setOnItemClickListener() 中数据库的 ID, 并刷新 Adapter。

 SimpleCursorAdapter notes = new SimpleCursorAdapter(this, 
                R.layout.notes_row, c, from, to); 
    notes.setViewBinder(new SimpleCursorAdapter.ViewBinder() { 
public boolean setViewValue(View view, Cursor cursor, int column) 
{ 
TextView tv = (TextView) view; 
view.setTag=cursor.getInt(cursor.getColumnIndex ("_id")); // You need to include the _id in the query
tv.setText(String.Valueof(cursor.getInt(cursor.getColumnIndex (NotesDbAdapter.KEY_TITLE ))));
return true; 
} 
});
         lv.setOnItemClickListener(new OnItemClickListener() { 
         public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
         TextView tv=(TextView) view;
     String ID=view.getTag();
    // Delete ID from the DB
    notes.notifyDataSetChanged(); 
         }; 
         });    
    setListAdapter(notes); 
    } 
}


查看完整回答
反对 回复 2019-04-28
?
ITMISS

TA贡献1871条经验 获得超8个赞

点击listview的items时,长按事件,出来一个对话框,里面有删除操作。这样可以删除。
也可以在每一行里面有个复选框,做删除功能。

查看完整回答
反对 回复 2019-04-28
?
喵喔喔

TA贡献1735条经验 获得超5个赞

做一个按钮然后指向
lvwName.Items.Remove(lvwName.SelectedItems[0]);

查看完整回答
反对 回复 2019-04-28
  • 3 回答
  • 0 关注
  • 380 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信