2013-12-15 1 views
0

오늘 밤 11시 59 분까지 끝내려고하는 응용 프로그램에 문제가 있습니다. 오늘 SQLite db with android로 작업 중이며 새로운 것으로 채우기로되어 있습니다. 데이터베이스에서 오는 목록 제목. 것은 아니다. 내가하고있는 일은 새로운 의도를 시작하는 Actionbar 메뉴 항목에서 활동을 호출하는 것입니다. 나는 데이터베이스에 목록 열을 업데이트하는 editext 위젯로 텍스트를 편집 할 수 있습니다이 활동에 도착하면tabhost 탭 위젯을 채울 수 없습니다.

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

이 괜찮 데이터베이스는 새 목록 항목으로 업데이트됩니다. 여기에 대한 코드가 있습니다. 내가 하나가 내가 응용 프로그램을 종료하지 않는 한 새 목록 개체가 새 탭에 채워되지 않은 항목 추가 아이콘 또는 내 장치의 뒤로 가기 버튼을 클릭하고로 돌아 가면

@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

listview에 지정한 목록 어댑터에 저장된 목록을 업데이트해야합니다.

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

setList 함수는 새 데이터를 어댑터에 저장합니다. Setlist는 사용자 지정 함수이며 사용자 지정 어댑터 안에 배치해야합니다. notifyDataSetChanged를 호출하면 어댑터가 다시로드되고 listview를 무효화하면 listview가 다시로드되고 새 정보가 표시됩니다.