2012-12-13 68 views
0

嗨,我正在遵循here的示例,並使其正常工作。 但問題是,我沒有列表顯示,所以我想知道如何修改函數,以便他們不需要xml中的列表元素工作?如何使用FragmentStatePagerSupport不需要在其中使用列表?

我希望我的 「R.layout.fragment_pager_list」 看起來像沒有有

<ListView android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:drawSelectorOnTop="false"/> 

在它這個

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

    <TextView android:id="@+id/text" 
     android:layout_width="match_parent" android:layout_height="wrap_content" 
     android:gravity="center_vertical|center_horizontal" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="@string/hello_world"/> 

    <!-- The frame layout is here since we will be showing either 
    the empty view or the list view. --> 
    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" > 

     <!-- Here is the view to show if the list is emtpy --> 
     <TextView android:id="@android:id/empty" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="No items."/> 

    </FrameLayout> 

</LinearLayout> 

即。我如何修改

public static class ArrayListFragment extends ListFragment { 
     int mNum; 

     /** 
     * Create a new instance of CountingFragment, providing "num" 
     * as an argument. 
     */ 
     static ArrayListFragment newInstance(int num) { 
      ArrayListFragment f = new ArrayListFragment(); 

      // Supply num input as an argument. 
      Bundle args = new Bundle(); 
      args.putInt("num", num); 
      f.setArguments(args); 

      return f; 
     } 

     /** 
     * When creating, retrieve this instance's number from its arguments. 
     */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      mNum = getArguments() != null ? getArguments().getInt("num") : 1; 
     } 

     /** 
     * The Fragment's UI is just a simple text view showing its 
     * instance number. 
     */ 
     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      View v = inflater.inflate(R.layout.fragment_pager_list, container, false); 
      View tv = v.findViewById(R.id.text); 
      ((TextView)tv).setText("Fragment #" + mNum); 
      return v; 
     } 

     @Override 
     public void onActivityCreated(Bundle savedInstanceState) { 
      super.onActivityCreated(savedInstanceState); 
      setListAdapter(new ArrayAdapter<String>(getActivity(), 
        android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings)); 
     } 

     @Override 
     public void onListItemClick(ListView l, View v, int position, long id) { 
      Log.i("FragmentList", "Item clicked: " + id); 
     } 
    } 
} 

爲了達到這個目的?

回答

1

如果您不想使用列表,請不要使用ListFragment作爲頁面。用您自己的頁面用戶界面創建您自己的Fragment。例如,使用片段的here is a sample project,每個片段託管一個EditText小部件。

相關問題