我已經閱讀了關於這類問題的一些問題,但是我無法解決它。在對話框關閉後更新ListView(在片段中)
我有這樣的:
public class Classwork extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_homework);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
}
public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a DummySectionFragment (defined as a static inner class
// below) with the page number as its lone argument.
Fragment fragment = new DummySectionFragment();
Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position + 1);
args.putInt("posizione", position);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
//code for number of pages
}
@Override
public CharSequence getPageTitle(int position) {
//code for return the title
}
}
public class DummySectionFragment extends Fragment {
public static final String ARG_SECTION_NUMBER = "section_number";
public DummySectionFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//query to populate ListView
//ListView with CustomAdapter
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> myAdapter, View myView, int myItemInt, long mylng) {
//Start new activity DialogDeleteAddGradeCopy
}
});
myDbHelper.close();
return rootView;
}
}
}
我與Eclipse嚮導創建它。 DummyFragment包含一個ListView,用SQLite查詢填充(正確)。 單擊ListView的一個項目時,會顯示一個「對話框」(實際上是一個對話框樣式的活動)。
對話框:
public class DialogDeleteAddGradeCopy extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//retrive data form Intent for the update in the db
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
//update the db
finish();
}
}
});
}
該對話框允許用戶更新(用分貝查詢)點擊的項目的值中的一個。 所有工作正常,除了碎片的更新。更新查詢是可以的(當對話框關閉時數據庫是最新的),但是爲了更新片段,我需要向左或向右滑動兩次,然後返回(這樣片段被重新創建,所以所有的作品精細)。
我該如何強制更新/重新創建碎片?
在此先感謝。
對不起,我的英文不好...
在片段的onResume()中嘗試CustomAdapter.notifyDataSetChanged() – nicous 2013-05-10 18:30:12
什麼都沒有發生......當對話框關閉(finish())但仍然沒有更新ListView時,會調用onResume()。不管怎麼說,還是要謝謝你。 – rivamarco 2013-05-10 18:44:16