当前位置: 首页 > 知识库问答 >
问题:

单击Delete按钮,从数据库和listview中同时删除项目

司易安
2023-03-14

我需要从ListView中永久删除一个项目,然后从数据库中删除。我有一个DatabaseHandler.java类,它的delete函数为:

// Deleting single contact, in DatabaseHandler.java class
public void deleteContact(Contact contact) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
            new String[] { String.valueOf(contact.getID()) });
    db.close();
}
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {


      @Override
      public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
              int position, long id) {
          // TODO Auto-generated method stub
                  Intent i = new Intent(FriendList.this, Delete_Confirm.class).addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
  //I am sending position of listitem in putExtra below//     
          i.putExtra("position", position);
          startActivityForResult(i,CONFIRM);
          item2 = (String) arg0.getItemAtPosition(position);


          //Toast.makeText(FriendList.this, "Clicked"+item2, Toast.LENGTH_SHORT).show();
          int l = item2.length();
          c=0;
          for(int j=0; j<=l; j++){
              if(item2.charAt(j) != '9' || item2.charAt(j+1) != '1'){
                  c++;                   
              }
              else {
                  //Do nothing
                  break;
              }
              num = item2.substring(c, l);  

          }


          Toast.makeText(FriendList.this, "Clicked: "+num, Toast.LENGTH_SHORT).show();
          return true;


      }
      }); 
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
  super.onActivityResult(reqCode, resultCode, data);

  switch (reqCode) {
  case (CONFIRM) :
  if(resultCode==RESULT_OK){
      int posi = data.getIntExtra("position",0);
          Log.d("msg","position is " + posi);

          Log.d("msg","Do we reach here?");
          final StableArrayAdapter adapter = new StableArrayAdapter(this,
                    android.R.layout.simple_list_item_1, list);
                    //db.deleteContact(posi);
                    list.remove(posi);

                  listview.setAdapter(adapter);
          adapter.notifyDataSetChanged();


  }

    break;

}}

注意,函数deleteContact具有contact类型的contact变量。

共有1个答案

有宏峻
2023-03-14

当您删除....尝试先从数据库中删除,然后从ListView中删除。
示例:

 db.deleteContact(list.get(posi));  // this will get string  
 list.remove(posi);  

DatabaseHandler类.......

public void deleteContact(String name){
    Log.d("Name:",""+ name);
    db.delete(TABLE_CONTACTS, KEY_NAME + " = ?", new String[] { name });

}                                                                  
 类似资料:
  • 如您所见,我制作了对话框,displaynotedate用于读取与金额相关的其他数据,并在对话框中读取:

  • 我有一个嵌套的列表框(主对象列表中的对象集合),它需要删除基础项。 删除项时,我可以重置主列表的itemssource,但主列表将有大量项,每次从其基础集合中移除项时,主滚动条也将重置,这使得用户愿意以非常痛苦的方式杀死我。 我的问题:如何找到项的容器,单击了哪个按钮,如何找到项本身,以便杀死@&!$*&#$@(诅咒拟声词)? 以下是列表的XAML示例: 我的应该怎么样?

  • 我正在用C#WPF做一个项目,它包含在一个客户机管理中,在那里我添加了新的客户机,在一个txt文档中有save,我有一个listview,在那里我可以看到所有添加的客户机,但现在我想实现一个delete按钮,在那里我从listview中选择一个客户机,并可以删除它。如果我现在做的正确,如果有人能帮我…,…谢谢。

  • 我有一个代码运行良好,除了一件事。当您单击按钮时,会出现一个模态框,并显示两个按钮。当您单击按钮时,它应该删除您单击的用户数据。但这将删除具有最低的用户。但是,如果我删除了模态开箱函数,而simpy只需要放一个就可以了。有办法解决吗? php中的代码:

  • 我有一个这样的列表视图 这很好,因为它会遍历我的 table1 项。该列表包含名称和价格。我的问题是如何通过鼠标点击一个项目来删除项目,然后点击一个说删除的按钮?我看到的问题是,我不知道有多少项目可用,这取决于用户添加了多少个项目。

  • 我想从java中的表中删除选定的行。该事件应在单击按钮时执行。如果有人帮助我,我会非常感激。。。 例如,有一个名为sub\U table的表,有3列,即sub\U id、sub\U name、class。当我从该表中选择一行并单击“删除”按钮时,应删除该特定行。。