listview只显示一个项目

时间:2012-10-05 08:22:08

标签: c# android listview xamarin.android

我想从foreach循环中添加项目。我的问题是,无论添加多少,我都只能看到一个项目。我在下面用我的问题制作了一个示例代码。从我的布局开始。

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

  <ScrollView android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:focusableInTouchMode="true">

      <TextView
          android:textSize="10pt"
          android:id="@+id/HeaderLbl"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
         />

      <TextView
            android:textSize="7pt"
            android:id="@+id/ErrorLbl"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="#ffff0000"
            />
      <Spinner
          android:id="@+id/OrderSpinner"
          android:layout_height="wrap_content"
          android:layout_width="fill_parent"
               >
      </Spinner>

      <TextView
            android:textSize="8pt"
            android:id="@+id/OrderRef"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
           />

      <TextView
            android:textSize="7pt"
            android:id="@+id/OrderDateTime"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
           />

      <TextView
            android:textSize="7pt"
            android:id="@+id/OrderCustomer"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
           />

      <TextView
            android:textSize="7pt"
            android:id="@+id/OrderInnerComment"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
           />

      <Spinner
          android:id="@+id/ArticleSpinner"
          android:layout_height="wrap_content"
          android:layout_width="fill_parent"
               >
      </Spinner>

      <ListView
        android:id="@+id/OperationsListView"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
          >
      </ListView>


    </LinearLayout>
  </ScrollView>
</LinearLayout>

在这里,我模拟我的foreach循环添加项目。

ArrayAdapter CalculationAdapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1);
    ListView OperationsListView = FindViewById<ListView>(Resource.Id.OperationsListView);

        for (int i = 0; i < 3; i++)
        {
            CalculationAdapter.Add(i.ToString());
        }

        OperationsListView.Adapter = CalculationAdapter;

非常感谢帮助!谢谢。

编辑: 我认为scrollview就是问题所在。

<ScrollView android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

我删除它然后它工作:) 不明白为什么...... How can I put a ListView into a ScrollView without it collapsing? Mabye这可以帮助任何其他有相同问题的人

2 个答案:

答案 0 :(得分:0)

使用它将适配器设置为listview

 OperationsListView.setAdapter(CalculationAdapter);

这会将值设置为listview

我不确定是否ListView OperationsListView = FindViewById<ListView>(Resource.Id.OperationsListView);

是对的

试试这个

 OperationsListView = (ListView) findViewById(your id );

答案 1 :(得分:0)

我认为你最后遗漏了notifyDataSetChanged();CalculationAdapter.notifyDataSetChanged();