【问题标题】:ListView and ArrayAdapter<String>ListView 和 ArrayAdapter<String>
【发布时间】:2011-03-10 14:05:09
【问题描述】:

这段代码有什么问题吗?

问题是ListView中没有显示“测试”。

Java:

private ListView namesListView;
private ArrayList<String> names;
private ArrayAdapter<String> namesAA;
...
namesListView = (ListView)findViewById(R.id.list);
names = new ArrayList<String>();
names.clear();
names.add(0, "test");
namesAA = new ArrayAdapter<String> ( this, android.R.layout.simple_list_item_1, names );
namesListView.setAdapter(namesAA);
...

XML:

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

【问题讨论】:

  • java代码在onCreate方法里面?
  • 这是一个活动还是一个列表活动?
  • 不需要在此处清除名称数组列表,因为您已经分配它并且在清除后,此代码是否在 onCreate 方法中?

标签: android arrays


【解决方案1】:

在 ListView 中尝试android:layout_height="match_parent"

【讨论】:

    【解决方案2】:

    如果您使用 ListActivity 或 ListFragment,您需要将 Listview 的名称更改为:android:id="@+id/android:list"

    编辑:哇,刚刚意识到这个问题已经三年了

    【讨论】:

    • 不错的观察 3 岁没注意到
    【解决方案3】:

    你试过了吗?

    namesAA = new ArrayAdapter<String> ( this, android.R.layout.simple_list_item_1, android.R.id.text1, names );
    

    顺便问一下,你为什么要指定物品的位置?我认为您正在清除数组列表,因此添加 names.add("test"); 更好。

    【讨论】:

      【解决方案4】:

      我发现的第一件事是layout_height 设置为wrap_content,它分配的高度不会超过它绝对需要的高度。对于滚动视图来说,这有点自相矛盾,因为它的大小实际上没有物理限制。

      我猜这就是你的问题所在。

      【讨论】:

      • 您好,我尝试将其更改为“fill_parent”,但没有效果。斯滕
      • 如果 arraylist 至少有一个元素,那么将 layout_height 属性指定为 wrap_content 就可以了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多