2013-12-15 39 views
0

我有一個應用程序的問題我想在今晚11:59 pm完成,我正在使用SQLite的SQL數據庫,它是假設填充一個新的列出來自數據庫的標題。事情並非如此。我所做的是從一個Actionbar菜單項調用一個活動來啓動新的意圖。無法獲得tabhost選項卡小部件來填充

case R.id.menuAddList: 
      Intent listIntent = new Intent(this, AddListActivity.class); 
      listIntent.putExtra("tab", tabHost.getCurrentTabTag()); 
      startActivity(listIntent); 
      break; 

當我到了這個活動,我可以編輯與editext部件,其在數據庫中更新列表欄中的文本,這是好的,並且數據庫與新列表項更新。這是代碼。

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
     case R.id.menuSave: 
      saveToDatbase(); 
      this.finish(); 
      break; 
     case R.id.menuCancel: 
      this.finish(); 
      break; 
    } 
    return super.onContextItemSelected(item); 
} 

private void saveToDatbase() { 
    // Get the data from the widgets 
    int listID = addlistSpinner.getSelectedItemPosition() + 1; 
    String name = newListNameEditText.getText().toString(); 


    // If there is no item name, then exit the method 
    if (name == null || name.equals("")) { 
     return; 
    } 

    // If in add mode, create a new list item 
    if(!editMode) { 
     list = new List(); 
    } 

    // Put some data in the list 
    list.setId(listID); 
    list.setName(name); 


    // Update or insert item data 
    if(editMode) { 
     db.updateList(list); 

    } 
    else { 
     db.insertList(list); 
    } 
} 

@Override 
public boolean onKey(View view, int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { 
     // Hide the soft keyboard 
     InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
     return true; 
    } 
    else if (keyCode == KeyEvent.KEYCODE_BACK) { 
     saveToDatbase(); 
     return false; 
    } 
    return false; 
} 

}

的事情是,當我或者單擊新列表對象未填充的新標籤上的添加項目圖標或設備上的後退按鈕除非我退出應用程序,並返回到。

回答

0

您必須更新列表視圖中存儲的列表。

mListAdapter.setList(****new data****); 
mListAdapter.notifyDataSetChanged(); 
mList.invalidate(); 

setList函數將新數據放入適配器。 Setlist是一個自定義函數,並且必須放置在您的自定義適配器中。調用notifyDataSetChanged應該重新加載適配器並使listview無效將重新加載列表視圖並顯示新信息。