我觉得这个问题被问了一百万遍,回答了一百万遍。我已经阅读并查看了十几个答案,但仍然无法解决该问题。对我来说,这似乎很简单,但是我花了很长的时间,无论做什么,我都只会看到数组适配器的第一项。我希望我遗漏了一些非常简单的东西,但是我发现的大多数例子都表明这是解决问题的方法,所以我感到困惑。
result = (ListView) rootView.findViewById( R.id.resultesult );
resultAdapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1 );
resultAdapter.add( "one" );
resultAdapter.clear();
resultAdapter.add( "two" );
resultAdapter.add( "three" );
result.setAdapter( resultAdapter );
当我运行程序时,ListView似乎只包含“两个”。.count()是2,就像我期望的那样(.clear()之后是“两个”和“三个”),但是ListView仅显示“两个”。即使我在运行时添加了1000个项目,它也只会显示“两个”。如果我将.clear()进行了显示,则它显示了我的第一件事.add(),但我真的很想显示我添加的所有内容,而不仅仅是第一个。
这是一个很短的片段,没有这样的意义。在我的实际程序中,在发生各种事情之后,我正在执行.add(“ blah”),然后在.post()s下执行.notifyDataSetChanged()。但我在那里也得到相同的结果。
UPDATE1:我的布局(按评论要求)如下。当ListView是TextView时,布局似乎可以正常工作。我问它是否没有扩展到ScrollView之类后,我确实想知道。我应该把它放在第一位。
<AutoCompleteTextView
android:id="@+id/command"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:ems="10"
android:hint="@string/commandHint"
android:imeActionId="@+id/execCommand"
android:imeActionLabel="@string/exec"
android:imeOptions="actionSend"
android:inputType="textAutoCorrect|textAutoComplete|textMultiLine|textUri"
android:selectAllOnFocus="false"
android:typeface="monospace" >
</AutoCompleteTextView>
<ScrollView
android:id="@+id/scrollView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/command"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:fadingEdge="horizontal|vertical"
android:scrollbars="horizontal|vertical" >
<ListView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</ScrollView>
UPDATE2:根据下面的几个答案,我使用arraylist进行了尝试,但没有任何区别。
result = (ListView) rootView.findViewById( R.id.resultesult );
ArrayList<String> doubtThisllMatter = new ArrayList<String>();
doubtThisllMatter.add( "one" );
doubtThisllMatter.add( "two" );
doubtThisllMatter.add( "three" );
resultAdapter = new ArrayAdapter<String>( this,
android.R.layout.simple_list_item_1,
doubtThisllMatter );
result.setAdapter( resultAdapter );
我仍然只是在活动显示的列表中获得“一个”。
请删除ScrollView。不允许在ScrollView中使用ListView。因为默认情况下ListView具有滚动效果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句