更新删除列表视图项目

问题描述:

我有一个列表视图,单击时打开但不显示关于该列表视图项目的详细信息。 listview的数据是由一个类输入到一个sqlite数据库中,并由另一个类从sqlite数据库中提取。不知道当我们点击列表viewitem时,应该在哪里出错。我没有足够的蓬发布成像相关的XML文件,但该方法的onClick低于更新删除列表视图项目

列表视图:

@覆盖

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
    Toast.makeText(getApplicationContext(), "clicked on :" + arg2, Toast.LENGTH_SHORT).show(); 

    Intent updateDeleteLoginInfo = new Intent (this, UpdateDeleteLoginList.class); 

    LoginDetails clickedObject = loginArrayList.get(arg2); 

     Bundle loginBundle = new Bundle(); 
    loginBundle.putString("clickedwebSite",clickedObject.getsName()); 
    loginBundle.putString("clickedwebAddress",clickedObject.getwUrl()); 
    loginBundle.putString("clickeduserName",clickedObject.getuName()); 
    loginBundle.putString("clickedpassWord",clickedObject.getpWord()); 

    updateDeleteLoginInfo.putExtras(loginBundle); 

    startActivity(updateDeleteLoginInfo); 

更新类别:

@覆盖

public void onClick(View v){ 

    loginSitetext = sName.getText().toString(); 
    loginAddresstext = wUrl.getText().toString(); 
    loginUsertext = uName.getText().toString(); 
    loginpassWordtext = pWord.getText().toString(); 

    LoginDetails loginDetails = new LoginDetails(); 

    loginDetails.setsName(bundledWebSite); 
    loginDetails.setwUrl(bundledWebAddress); 
    loginDetails.setuName(bundledUserName); 
    loginDetails.setpWord(bundledPassWord); 

    if(v.getId()==R.id.rucBttn){ 
     finish(); 

    }else if(v.getId()==R.id.ruuBttn){ 
     updateLoginDetails(loginDetails); 

    }else if(v.getId()==R.id.rudBttn){ 
     deleteLoginDetails(loginDetails); 
    } 

} 


private void updateLoginDetails(LoginDetails loginDetails){ 

    dataStore androidOpenDbHelper = new dataStore(this); 

    SQLiteDatabase sqliteDatabase = androidOpenDbHelper.getWritableDatabase(); 

    ContentValues contentValues = new ContentValues(); 

    contentValues.put(dataStore.COLUMN_NAME_SITE, loginSitetext); 
    contentValues.put(dataStore.COLUMN_NAME_ADDRESS, loginAddresstext); 
    contentValues.put(dataStore.COLUMN_NAME_USERNAME, loginUsertext); 
    contentValues.put(dataStore.COLUMN_NAME_PASSWORD, loginpassWordtext); 

    String[] whereClauseArgument = new String[1]; 
    whereClauseArgument[0]= loginDetails.getsName(); 

    System.out.println("whereClauseArgument[0] is :" + whereClauseArgument[0]); 

    sqliteDatabase.update(dataStore.TABLE_NAME_INFOTABLE, contentValues, dataStore.COLUMN_NAME_SITE+"=?", whereClauseArgument); 

    sqliteDatabase.close(); 
    finish(); 
} 

private void deleteLoginDetails(LoginDetails deleteLoginDetails){ 

    dataStore androidOpenDbHelper = new dataStore(this); 

    SQLiteDatabase sqliteDatabase = androidOpenDbHelper.getWritableDatabase(); 

    String[] whereClauseArgument = new String[1]; 
    whereClauseArgument[0] = deleteLoginDetails.getsName(); 

    sqliteDatabase.delete(dataStore.TABLE_NAME_INFOTABLE,dataStore.COLUMN_NAME_SITE+"=?", whereClauseArgument); 

    sqliteDatabase.close(); 
    finish(); 

在另一个类的whereClauseArgument未被capatalized中找到'C'。在大写之后,每件事情都应该如此。

你可以使用notifyDataSetChanged()函数来实现更新t他listView。

指定一个新的适配器evrytime你更新需要更新的列表。

+0

对不起,我遇到的问题是,一旦单击ListView项目,用于更新/删除的活动不会填充单击ListView项目的详细信息。 – user1165694 2012-03-28 14:07:15