2016-01-30 39 views
-1

好日子夥計們..需要一些幫助在這裏..我從列表視圖中刪除選定的行遇到困難..我想使用警報對話框進行確認刪除選定排..並編輯也..我是一個初學者,我試圖尋找這個問題的答案,並試圖將它與其他問題,但我仍然沒有得到它...警報對話框刪除ListView項目點擊

我的DatabaseHelper類


public class DatabaseHelper extends SQLiteOpenHelper implements Filterable{ 

// private static final String COLUMN_NAME="ageing_column"; 
private static final String DATABASE_NAME=" EXPIRATIONMONITORING.DB"; 
private static final int DATABASE_VERSION = 1; 
private static final String CREATE_QUERY = 
     "CREATE TABLE "+ContractClass.NewInfo.TABLE_NAME+"("+ ContractClass.NewInfo.ITEM_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+ContractClass.NewInfo.DESCRIPTION+" TEXT, "+ 
       ContractClass.NewInfo.CATEGORY+" TEXT,"+ ContractClass.NewInfo.MONTHONE+" TEXT, "+ ContractClass.NewInfo.REMIND_AT+" TEXT, "+ ContractClass.NewInfo.QTY+" TEXT, "+ 
       ContractClass.NewInfo.LOCATION+" TEXT);"; 
private SQLiteDatabase sqLiteDatabase; 

public DatabaseHelper(Context context) 
{ 

    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    //this.context1=context; 
    Log.e("DATABASE OPERATIONS", "Database created/opened...."); 
} 
@Override 
public void onCreate(SQLiteDatabase db) { 


    db.execSQL(CREATE_QUERY); 

    Log.e("DATABASE OPERATIONS", "Table created...."); 

} 
public void addInformations(String description, String category, String monthOne,String quantity,String remind, String location, SQLiteDatabase db) 
{ 
    ContentValues contentValues=new ContentValues(); 
    contentValues.put(ContractClass.NewInfo.LOCATION,location); 
    contentValues.put(ContractClass.NewInfo.DESCRIPTION,description); 
    contentValues.put(ContractClass.NewInfo.CATEGORY,category); 
    contentValues.put(ContractClass.NewInfo.MONTHONE,monthOne); 
    contentValues.put(ContractClass.NewInfo.REMIND_AT,remind); 
    contentValues.put(ContractClass.NewInfo.QTY,quantity); 
    db.insert(ContractClass.NewInfo.TABLE_NAME, null, contentValues); 
    Log.e("DATABASE OPERATIONS", "One row inserted"); 
    db.close(); 
} 

public Cursor getInformations(SQLiteDatabase db) 
{ 
    Cursor cursor; 
    String[] projections ={ContractClass.NewInfo.DESCRIPTION,ContractClass.NewInfo.CATEGORY,ContractClass.NewInfo.MONTHONE, ContractClass.NewInfo.QTY, ContractClass.NewInfo.REMIND_AT,ContractClass.NewInfo.LOCATION}; 
    cursor=db.query(ContractClass.NewInfo.TABLE_NAME, projections, null, null, null, null, null); 
    return cursor; 
} 
public Cursor getContact(String location,SQLiteDatabase sqLiteDatabase) 
{ 
    String[] projections ={ContractClass.NewInfo.DESCRIPTION,ContractClass.NewInfo.CATEGORY,ContractClass.NewInfo.MONTHONE, ContractClass.NewInfo.QTY, ContractClass.NewInfo.REMIND_AT,ContractClass.NewInfo.LOCATION}; 
    String selection = ContractClass.NewInfo.LOCATION+" LIKE? "; 
    String [] sargs={location}; 
    Cursor cursor=sqLiteDatabase.query(ContractClass.NewInfo.TABLE_NAME,projections,selection,sargs,null,null,null); 
    return cursor; 
} 
public String[] SelectAllData() 
{ 
    try 
    { 
     String arrData[]=null; 
     SQLiteDatabase db; 
     db=this.getReadableDatabase(); 
     String strSQL=" SELECT "+ ContractClass.NewInfo.LOCATION+" FROM "+ ContractClass.NewInfo.TABLE_NAME; 
     Cursor cursor =db.rawQuery(strSQL,null); 
     if(cursor !=null) 
     { 
      if(cursor.moveToFirst()) 
      { 
       arrData=new String[cursor.getCount()]; 
       int i=0; 
       do 
       { 
        arrData[i]=cursor.getString(0); 
        i++; 

       }while(cursor.moveToNext()); 
      } 
     } 
     cursor.close(); 
     return arrData; 

    }catch(Exception e){ 
     return null; 
    } 
} 
public void delete_byID(int id){ 
    sqLiteDatabase.delete(ContractClass.NewInfo.TABLE_NAME, ContractClass.NewInfo.ITEM_ID + "=" + id, null); 
} 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

} 


@Override 
public Filter getFilter() { 
    return null; 
} 
} 

這是我的主類..


public class ViewListsActivity extends AppCompatActivity { 
DatabaseHelper databaseHelper; 
SQLiteDatabase sqLiteDatabase; 
ListDataAdapter listDataAdapter; 
ListView listView; 
Cursor cursor; 
EditText delete_txt; 
String deletetxt; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.view_lists_activity); 
    listView = (ListView) findViewById(R.id.search_listView); 
      listDataAdapter = new 

    ListDataAdapter(getApplicationContext(),R.layout.row_layout); 
    databaseHelper = new DatabaseHelper(getApplicationContext()); 
    databaseHelper = new DatabaseHelper(this); 
    delete_txt = (EditText) findViewById(R.id.delete_text); 
    sqLiteDatabase = databaseHelper.getReadableDatabase(); 
    cursor = databaseHelper.getInformations(sqLiteDatabase); 
    listView.setAdapter(listDataAdapter); 
    if (cursor.moveToFirst()) { 
     do { 
      String description, category, month1,remind,qty,location; 
      description = cursor.getString(0); 
      category = cursor.getString(1); 
      month1 = cursor.getString(2); 
      qty=cursor.getString(3); 
      remind=cursor.getString(4); 
      location = cursor.getString(5); 
      DataProvider dataProvider = new DataProvider(description, 
      category, month1,qty,remind,location); 
      listDataAdapter.add(dataProvider); 
     } while (cursor.moveToNext()); 
    } 
    listView.setOnItemLongClickListener(new 
    AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View 
    view, int position, long id) { 
      return false; 




     } 
    }); 
    } 
    public void ToSearchBtn(View view) 
    { 
    Intent intent=new Intent(this,ThirdActivitySearchAllData.class); 
    startActivity(intent); 
} 
public void ToAddNewItemBtn(View view) 
{ 
    Intent intent=new Intent(this,SecondActivitySaveData.class); 
    startActivity(intent); 
} 

} 

我的列表適配器類


public class ListDataAdapter extends ArrayAdapter { 
List list = new ArrayList(); 

public ListDataAdapter(Context context, int resource) { 
    super(context, resource); 
} 



static class LayoutHandler 
{ 
    TextView DESCRIPTION,CATEGORY,MONTH1,QTY,REMIND,LOCATION; 
} 
public void add(Object object) 
{ 
    super.add(object); 
    list.add(object); 
} 

@Override 
public int getCount() { 
    return list.size(); 
} 

@Override 
public Object getItem(int position) { 
    return list.get(position); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    View row =convertView; 
    LayoutHandler layoutHandler; 

    if(row==null) 
    { 
     LayoutInflater layoutInflater=(LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row=layoutInflater.inflate(R.layout.row_layout,parent,false); 
     layoutHandler=new LayoutHandler(); 

     layoutHandler.DESCRIPTION= (TextView) row.findViewById(R.id.text_description); 
     layoutHandler.CATEGORY= (TextView) row.findViewById(R.id.text_category); 
     layoutHandler.MONTH1= (TextView) row.findViewById(R.id.text_monthOne); 
     layoutHandler.REMIND= (TextView) row.findViewById(R.id.text_remind); 
     layoutHandler.QTY= (TextView) row.findViewById(R.id.text_qty); 
     layoutHandler.LOCATION= (TextView) row.findViewById(R.id.text_location); 
     row.setTag(layoutHandler); 
    }else 
    { 
     layoutHandler=(LayoutHandler)row.getTag(); 

    } 
    DataProvider dataProvider= (DataProvider) this.getItem(position); 
    layoutHandler.DESCRIPTION.setText(dataProvider.getDescription()); 
    layoutHandler.CATEGORY.setText(dataProvider.getCategory()); 
    layoutHandler.MONTH1.setText(dataProvider.getMonthOne()); 
    layoutHandler.REMIND.setText(dataProvider.getRemindAt()); 
    layoutHandler.QTY.setText(dataProvider.getQuantity()); 
    layoutHandler.LOCATION.setText(dataProvider.getLocation()); 


    return row; 
} 


} 

回答

0

您可以使用警報對話框用於顯示確認彈出,既用於刪除和編輯,並根據所選的選項YES/NO選項ALERT DIALOG您可以執行進一步操作

在以下鏈接中,您可以找到示例代碼

How do I display an alert dialog on Android?

+0

感謝那..但我正在尋找刪除和更新的查詢方法,應該在我的幫助類中構建,以及如何在我的主要活動onItemClickistener中實現它。 –

+0

我已經實現了AlertDialog.Builder..how關於調用刪除和編輯和執行它的方法.. –

+0

我知道了!!!它是在我的刪除方法..謝謝反正.. –

相關問題