0
我正在使用活動將數據輸入到主詳細信息模板,而且我想要實現的是每次退出活動並返回結果時刷新數據,但每次執行並嘗試選擇模板中的一個項目我得到這個非法狀態異常。 下面的代碼在關閉活動後未被調用時有效。IllegalStateException當從主動詳細模板中的活動返回時
當我提交支持片段管理器時,我得到這個錯誤,如果我改變提交commitAllowingStateLoss代碼繼續,但它不重新加載詳細數據。 任何有關這個問題的幫助將不勝感激。
@Override
public void onItemSelected(int id) {
if (mTwoPane) {
Bundle arguments = new Bundle();
arguments.putInt(CategoryDetailFragment.ARG_ITEM_ID, id);
CategoryDetailFragment fragment = new CategoryDetailFragment();
fragment.setArguments(arguments);
getSupportFragmentManager().beginTransaction()
.replace(R.id.category_detail_container, fragment).commit();
if (findViewById(R.id.startUpPicture)!=null){
ImageView IV_StartUp =
(ImageView) findViewById(R.id.startUpPicture);
IV_StartUp.setVisibility(View.GONE);
}
} else {
Intent detailIntent = new Intent(this, CategoryDetailActivity.class);
detailIntent.putExtra(CategoryDetailFragment.ARG_ITEM_ID, id);
startActivity(detailIntent);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case 0:
onItemSelected(data.getIntExtra("CAT_ID", -1));
break;
case 1:
SQLCategories _sql = new SQLCategories(CategoryListActivity.this);
ArrayList<Categories> _categories =_sql.getAllCategories();
_CLFragment.getListView().setAdapter(new CategoriesAdapter(CategoryListActivity.this, _categories));
onItemSelected(-1);
break;
default:
if(resultCode==1){
onItemSelected(data.getIntExtra("CAT_ID", -1));
break;
}
}
是的,我試過了,但我遇到了另一個問題,同時我無法從數據庫中提取任何數據。一個應該返回3行的查詢返回0.然後,當所有再次加載時,我啓動相同的功能,並拉出我需要的3行。 – user2227904