2014-11-15 124 views
-1

我在活動中有一個帶有ListView的片段。但是,當我運行該應用程序時,ListView沒有顯示,而只是向我顯示一個空白的活動。問題是什麼? 的就是這些文件:活動中的片段不顯示

這是MainActivity.java:

public class MainActivity extends FragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.list_fragment); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main_activity, menu); 
     return true; 
    } 

} 

ListFragment.java:

public class ListFragment extends Fragment{ 
    ListView list; 

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

     list = (ListView) inflater.inflate(R.layout.list_fragment, container, false); 
     list.setAdapter(new MyAdapter(getActivity())); 
     return list; 
    } 
} 

activity_main.xml中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <fragment class="com.dandvrn.ListFragment" 
       android:id="@+id/list_fragment" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" /> 


</RelativeLayout> 

list_fragment.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ListView 
     android:id="@+id/list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" > 

    </ListView> 

</RelativeLayout> 
+1

MainActivity不會啓動您的片段。 – jyoon

+0

爲什麼不能?膨脹佈局不夠嗎? –

+0

對於任何贊成倒敘的人,請解釋原因。 –

回答

1

你給android:layout_width="0dp"在你的XML片段,儘量給人尺寸> 0

+0

試過了。什麼也沒變。 –

+0

@DanDv好吧,那麼請更新這個問題,因爲用0dp它應該什麼都不顯示,另一件事你可以做的就是在你的片段onCreateView中記錄一些東西,看看是否創建了片段 – lelloman

0

進行這些更改:

1)你必須設置你的活動內容查看你的活動佈局而不是片段的佈局:

public class MainActivity extends FragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); // here 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main_activity, menu); 
     return true; 
    } 

} 

2)onCreateView應該返回您的片段的視圖。此外,請按照以下步驟正確訪問您的ListView:

public class ListFragment extends Fragment { 
ListView list; 

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

    View v = inflater.inflate(R.layout.list_fragment, container, false); 
    list = (ListView) v.findViewById(R.id.list); 
    list.setAdapter(new MyAdapter(getActivity())); 
    return v; 
} 

希望它能幫助您! :-)