2015-03-30 2 views
0

Я разработал приложение для Android: p Итак, у меня есть listview с контекстным меню. В Контекстное кнопка для удаления строки Таким образом, я видел много учебников, но никто не может помочь мне:!/Android Listview удалить SQLite использовать строку ContextMenu

MainActivity.java

 lv = (ListView) findViewById(R.id.memberList_id); 
      registerForContextMenu(lv); 


    } 
     @Override 
     public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
      super.onCreateContextMenu(menu, v, menuInfo); 
      if (v.getId()==R.id.memberList_id) { 
       MenuInflater inflater = getMenuInflater(); 
       inflater.inflate(R.menu.menu_list, menu); 
      } 

     } 

     @Override 
     public boolean onContextItemSelected(MenuItem item) { 
      AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
      switch(item.getItemId()) { 
       case R.id.bearbeiten: 

        memI 

D_tv = (TextView)findViewById(R.id.member_id); 
       memName_tv = (TextView)findViewById(R.id.member_name); 

       String memberID_val = memID_tv.getText().toString(); 
       String memberName_val = memName_tv.getText().toString(); 

       Intent modify_intent = new Intent(getApplicationContext(), 
                Modify_member.class); 
       modify_intent.putExtra("memberName", memberName_val); 
       modify_intent.putExtra("memberID", memberID_val); 
       startActivity(modify_intent); 

       return true; 
      case R.id.löschen: 

       dbcon.deleteData(member_id); 

       return true; 
      default: 
       return super.onContextItemSelected(item); 
     } 
    } 

DBhelper.java

package com.studiocrew.lehrstellekontrolle; 

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DBhelper extends SQLiteOpenHelper { 

    // TABLE INFORMATTION 
     public static final String TABLE_MEMBER = "member"; 
     public static final String MEMBER_ID = "_id"; 
     public static final String MEMBER_NAME = "name"; 

     // DATABASE INFORMATION 
     static final String DB_NAME = "MEMBER.DB"; 
     static final int DB_VERSION = 1; 

    // TABLE CREATION STATEMENT 
    private static final String CREATE_TABLE = "create table " 
      + TABLE_MEMBER + "(" + MEMBER_ID 
      + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
      + MEMBER_NAME + " TEXT NOT NULL);"; 

    public DBhelper(Context context) { 
     super(context, DB_NAME, null,DB_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(CREATE_TABLE); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 

     db.execSQL("DROP TABLE IF EXISTS " + TABLE_MEMBER); 
     onCreate(db); 
    } 
} 
+0

В чем именно проблема, с которой вы сталкиваетесь? –

+0

@JoeBauer Я хочу удалить строку listview с помощью контекстного меню. –

ответ

0

Вы просто нужна ссылка на адаптер, который используется списком. Если у вас возникли проблемы с получением ссылок на выбранный объект, вы можете создать пользовательский адаптер, который позволит вам получить выбранный элемент. Таким образом, вы бы что-то вроде:

adapter.remove(adapter.getSelectedItem()); 

Тогда вы могли бы использовать ту же ссылку на этот элемент, чтобы удалить его из базы данных.