Listview里面的Listview只有一个元素

时间:2015-07-16 15:43:23

标签: android listview android-listview android-arrayadapter

您好我试图将listview放在listview中的listview中。 唯一的问题是只有第一个listview正确显示所有元素。 之后的每个列表视图只包含一个元素。

更新

创建我自己的不可滚动列表视图解决了这个问题。 https://stackoverflow.com/a/24629341/3713144

以下是一些代码:

activity_anlagen_details.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout

   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/DrawerLayout"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:elevation="7dp">

   <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">


       <include
          android:id="@+id/tool_bar"
          layout="@layout/tool_bar"></include>

      <TextView
          android:id="@+id/anlagenName_textview"
          android:layout_width="0dp"
          android:layout_height="60dp"
          android:gravity="center|center_vertical"
          android:padding="3dip"
          android:singleLine="true"
          android:textAppearance="?android:attr/textAppearanceLarge" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="4dp"
        android:background="#424242" />

    <ListView
        android:id="@+id/listChecklisten"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/RecyclerView"
    android:layout_width="320dp"
    android:layout_height="match_parent"
    android:layout_gravity="left"

    android:background="#ffffff"
    android:scrollbars="vertical">

    </android.support.v7.widget.RecyclerView>
</android.support.v4.widget.DrawerLayout>

anlagen_checklisten_listview.xml:

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

<TextView
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:id="@+id/checkliste_name"
    android:layout_gravity="center_horizontal"
    android:gravity="center|center_vertical"/>

<ListView
    android:id="@+id/listChecklistenPunkte"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

依旧......

我现在要做的是为所有列表视图设置ArrayAdapter:

AnlagenDetailsActivity:

...
long anlagenId = getIntent().getLongExtra("anlagen_id", 0);
Log.d(logger, "Details for Anlage: " + anlagenId);
LocalAnlagenAccessor accessor = new LocalAnlagenAccessor(this);
Anlage anlage = accessor.readAnlage(anlagenId);
TextView anlagenName = (TextView) findViewById(R.id.anlagenName_textview);
anlagenName.setText(anlage.getName());
ListView listView = (ListView) findViewById(R.id.listChecklisten);
AnlagenChecklistenAdapter adapter = new AnlagenChecklistenAdapter(this);
listView.setAdapter(adapter);
adapter.addAll(anlage.getChecklisten());
...

AnlagenChecklistenAdapter:

...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View checklisteView = inflater.inflate(R.layout.anlagen_checklisten_listview, parent, false);
    TextView checklisteName = (TextView) checklisteView.findViewById(R.id.checkliste_name);
    checklisteName.setText(getItem(position).getArt());
    ListView listView = (ListView) checklisteView.findViewById(R.id.listChecklistenPunkte);
    AnlagenChecklistenPunktAdapter adapter = new AnlagenChecklistenPunktAdapter(checklisteView.getContext());
    listView.setAdapter(adapter);
    adapter.addAll(getItem(position).getChecklistenPunkte());
    return checklisteView;
}
...

另外一个列表视图也是如此。 我在这里做错了什么?

0 个答案:

没有答案