介紹刷新列表
我使用一個數據庫和ContentProvider的填充ListFragment。問題是,ListFragment是沒有得到刷新刪除商品後,我不得不關閉並重新打開該應用顯示在列表中添加的項目。
我以前好這方面的工作,但我修改的代碼做了之後,這已經開始發生,我不知道如何解決。
是什麼原因導致這種
從我的主要活動描述,我通過打電話的意圖ListFragment。由於片段不能通過intent直接調用,因此我調用FragmentActivity,該功能僅用於啓動ListFragment。
[Main] >> [FragmentActivity] >> [ListFragment]
正如我要處理單或雙窗格中,我創建了contais的片段的佈局,這被稱爲list_layout
。
FragmentActivity:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_layout);
//...
if (mDualPane){
MyPlacesListFragment listFragment = new MyPlacesListFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.list_fragment, listFragment).commit();
}
else {
MyPlacesListFragment listFragment = new MyPlacesListFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(android.R.id.content, listFragment).commit();
}
}
list_layout.xml:(對於單窗格視圖,對於雙窗格將是相似的,但在水平方向和添加的FrameLayout容器)
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<fragment
class="com.final.reversegeocoding.MyPlacesListFragment"
android:id="@+id/list_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
的ListFragment使用ResourceCursorAdapter所以我用newVew和bindView方法。我只會把代碼引用到如何誇大類的屁股,我已檢查其他代碼功能是否做得很好。不得不說,我誇大android.R.layout.simple_list_item_2
,因爲這是我需要填寫列表中的佈局。
ListFragment:
final class PlacesCursorAdapter extends ResourceCursorAdapter {
private final LayoutInflater mInflater;
public PlacesCursorAdapter(Context context, Cursor c) {
super(context, android.R.layout.simple_list_item_2, c, 0);
//...
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = mInflater.inflate(android.R.layout.simple_list_item_2, parent, false);
//...
結論
之前,我我以前不設置在FragmentActivity的setContentView(R.layout.list_layout);
,它這樣做是正確的刷新時我刪除了一個項目。
但由於我必須處理單個或雙重窗格,我一直被迫做這個,現在,當我刪除一個項目,列表刷新,但因爲它包含在FragmentActivity的list_layout
,這不是刷新直到我退出並再次進入活動,該列表不會在其內部被刷新。
所以我的問題是:如何修改此代碼以獲取佈局刷新而不必退出ListFragment?
你發佈了很多不相關的代碼,但沒有發佈什麼重要的:ContentProvider和你如何刪除一個項目 – pskink
@pskink正如我所說的,contentProvider的代碼是O K.我之前就使用過它,並且它的功能正確。它已經開始做錯了,因爲我已經聲明瞭'list_layout',所以對提供者的方法不存在問題,這是佈局刷新的問題。 – masmic