Android Can';无法获取要填充的tabhost选项卡小部件
我有一个问题,我试图在今晚11:59完成一个应用程序,我正在使用一个SQLite db for android,它应该填充一个来自数据库的新列表标题。问题是它不是。我所做的是从Actionbar菜单项调用一个活动,它启动了新的意图Android Can';无法获取要填充的tabhost选项卡小部件,android,sqlite,android-tabhost,Android,Sqlite,Android Tabhost,我有一个问题,我试图在今晚11:59完成一个应用程序,我正在使用一个SQLite db for android,它应该填充一个来自数据库的新列表标题。问题是它不是。我所做的是从Actionbar菜单项调用一个活动,它启动了新的意图 case R.id.menuAddList: Intent listIntent = new Intent(this, AddListActivity.class); listIntent.putExtra("tab",
case R.id.menuAddList:
Intent listIntent = new Intent(this, AddListActivity.class);
listIntent.putExtra("tab", tabHost.getCurrentTabTag());
startActivity(listIntent);
break;
当我进入这个活动时,我可以用一个EditText小部件编辑文本,该小部件更新数据库中的列表列,这很好,并且数据库用新的列表项更新。这是代码
@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;
}
}
问题是,当我单击设备上的“添加项目”图标或“上一步”按钮时,除非退出应用程序并返回到该应用程序,否则新列表对象不会填充到“新建”选项卡上 您必须更新存储在为listview提供的列表适配器中的列表
mListAdapter.setList(****new data****);
mListAdapter.notifyDataSetChanged();
mList.invalidate();
setList函数将新数据放入适配器。Setlist是一个自定义函数,必须放在自定义适配器中。调用notifyDataSetChanged应重新加载适配器,而使listview无效将重新加载listview并显示新信息