1

我知道這個問題可能被問到目前爲止,但我仍然無法解決我的問題。我有一個由2個片段組成的活動。一個片段是向數據庫添加信息的表單:Android - 使用片段和一個簡單的光標適配器填充listview

**R.layout.fragment_add_server:** 
<?xml version="1.0" encoding="utf-8"?> 
... 
<LinearLayout 
    android:id="@+id/nameLinear" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="5dp" 
    android:layout_marginLeft="5dp" > 

    <TextView 
     android:id="@+id/nameText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="70" 
     android:text="@string/strName" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/editName" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="30" 
     android:hint="@string/editName" /> 
</LinearLayout> 
... 

而另一個片段只是一個listview。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@drawable/georgeback" 
android:orientation="vertical" > 

<ListView 
    android:id="@+id/listView1" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="60" > 
</ListView> 

<Button 
    android:id="@+id/connect" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:text="@string/connectBTN" /> 

</LinearLayout> 

那片段,列表視圖,我想與任何存在於數據庫中,並自動刷新增加了新的東西時(有沒有到那個階段還)來填充它。當我在下面使用下面的代碼時,我設法用整個片段填充listview(即我看到列表框,按鈕等,我甚至可以與它們進行交互),而不僅僅是數據。

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_select_server, 
      container, false); 
    Cursor mNotesCursor = mDbHelper.fetchAllNotes(); 
    String[] from = new String[]{mDbHelper.KEY_TITLE}; 
    int[] to = new int[]{R.id.editName}; 
    mCurAdapter = new SimpleCursorAdapter(view.getContext(),R.layout.fragment_add_server,mNotesCursor,from,to,0); 

    mMyListView=(ListView)view.findViewById(R.id.listView1); 
    mMyListView.setAdapter(mCurAdapter); 

    return view; 
} 

我相信我在做構造函數的from和to的錯誤。任何想法,爲什麼我會得到一個輸出整個片段視圖,而不僅僅是數據庫中的數據?還有其他建議嗎?

回答

0

我解決了我通過改變simplecursoradapter佈局的問題。取而代之的

mCurAdapter = new SimpleCursorAdapter(view.getContext(),R.layout.fragment_add_server,mNotesCursor,from,to,0); 

我所做的:

mCurAdapter = new SimpleCursorAdapter(view.getContext(),android.R.layout.simple_list_item_1,mNotesCursor,from,to,0); 

本質上改變佈局的通用機器人列表佈局的伎倆! :)

0

你的問題是當你通過片段佈局,而不是列表視圖項目佈局。從我所看到的列表視圖項目包含在您的fragment_add_server.xml佈局中(因爲您在xml片段之前和之後放置了...)。將代碼片段移動到它自己的文件中,如my_list_view_item.xml,並在創建SimpleCursorAdapter時使用該文件。

mCurAdapter = new SimpleCursorAdapter(view.getContext(),R.layout.my_list_view_item,mNotesCursor,from,to,0); 
+0

對不起,我沒有添加第二個佈局以及。該列表視圖是第二個佈局,並將不同的片段放在一起。我現在已將代碼添加到原始帖子中。當我添加到構造函數的第二個佈局(R.layout.fragment_select_server)沒有出現在列表視圖中。 – skywritergr 2013-02-25 23:04:06