将两个ListView添加到片段

时间:2015-12-16 16:26:42

标签: java android

我正在为我在学校的项目做一个时间管理应用程序。因此,有一个名为Activity的类,它代表用户当天所做的活动(如去学校,听音乐,吃饭等)。 Activity对象有一个名为done的即时变量,它是boolean类型,另一个是insant变量Tags,它是Tag数组。需要布尔值,因为用户可以输入未来的活动,之后他/她可以将其标记为已完成。标记类是供用户标记其活动的(例如,活动可以有标记:同时运动和爱好)。用户输入到程序的这些活动显示在名为活动片段的片段中。此片段中将有2个不同的Listview,一个用于完成,另一个用于撤消活动。所以我编写了我的xml代码,这样它就会有2个Listview,并将这个listviews添加到我的片段中。但是,当我运行我的代码时,我只能看到一个Listviews,另一个没有显示。这就是我的xml文件的样子:(这里是设计的图片:http://postimg.org/image/a7u1ynfzb/

<LinearLayout 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:orientation="vertical"
tools:context="com.beter.timehole.fragment.ActivitiesFragment">

<!-- TODO: Update blank fragment layout -->


<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/listView1"
     />
<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/listView2"
     />
</LinearLayout>

这是片段类的代码:

public class ActivitiesFragment extends Fragment {

public ActivitiesFragment() {
}


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

    ArrayList<Tag> tags1= new ArrayList<Tag>();
    tags1.add(new Tag("Tag1"));

    ArrayList<Tag> tags2= new ArrayList<Tag>();
    tags2.add(new Tag("Tag2"));

    com.beter.timehole.core.Activity doneSample = new com.beter.timehole.core.Activity("Work",true,70,"16 50","17 00",tags1,"did it");
    com.beter.timehole.core.Activity undoneSample = new com.beter.timehole.core.Activity("Fun",false,30,"13 30","14 00",tags2,"will do it");
    View rootView = inflater.inflate(R.layout.activity_fragment, container, false);
    ArrayList<com.beter.timehole.core.Activity> doneActivities = new ArrayList<com.beter.timehole.core.Activity>();
    doneActivities.add(doneSample);
    ListView doneList = (ListView) rootView.findViewById(R.id.listView1);
    doneList.setAdapter(new ArrayAdapter<com.beter.timehole.core.Activity>(getActivity(), R.layout.support_simple_spinner_dropdown_item, doneActivities));

    ArrayList<com.beter.timehole.core.Activity> undoneActivities = new ArrayList<com.beter.timehole.core.Activity>();
    undoneActivities.add(undoneSample);
    ListView undoneList = (ListView) rootView.findViewById(R.id.listView2);
    undoneList.setAdapter(new ArrayAdapter<com.beter.timehole.core.Activity>(getActivity(),R.layout.support_simple_spinner_dropdown_item,undoneActivities));
    return rootView;
}
}

2 个答案:

答案 0 :(得分:3)

尝试更改layout_height =&#34; 0dp&#34;

试试这个布局代码。

`

<!-- TODO: Update blank fragment layout -->


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

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

`

如果这不起作用,请尝试检查您的代码或将完整的代码放在此处。

答案 1 :(得分:1)

请试试这个

<LinearLayout 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:orientation="vertical"
tools:context="com.beter.timehole.fragment.ActivitiesFragment">
        <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:id="@+id/listView1"
         />
    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:id="@+id/listView2"
         /></LinearLayout>