gpt4 book ai didi

Android ListView 创建 View 但不显示它们

转载 作者:行者123 更新时间:2023-11-30 03:53:12 24 4
gpt4 key购买 nike

我在 Android 上使用 ListView 时遇到问题。我有一个带有 EditText View 和一个按钮的 Activity 。这个想法是用户应该在 EditText 字段中输入一些信息,触摸搜索按钮,该按钮从 Web 服务中检索列表,该列表显示在 EditText 和按钮下方的同一 Activity 中。一切正常,我从互联网上获取了数据,但没有显示项目。我正在使用 notifyDataSetChanged()。几个小时后没有成功,我决定尝试手动放置一些项目,结果又没有显示任何内容,因此我认为我在尝试设置 ListView 和适配器时做错了什么。所以这是代码..

Activity 的xml activity_search.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp">

<EditText
android:id="@+id/edit_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:inputType="text"
android:hint="Enter info"
android:ems="10" >
<requestFocus />
</EditText>

<Button
android:id="@+id/button_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:drawable/ic_menu_search"
android:contentDescription="Search"
android:ems="10" />
</LinearLayout>

<ListView
android:id="@+id/listview_items"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false" />

项目 row.xml 的 XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="5dp">

<TextView
android:id="@+id/row_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Common_TextContent"
android:textAppearance="@android:style/TextAppearance.Holo.Medium" />

<TextView
android:id="@+id/row_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="@string/Common_TextContent"
android:textAppearance="@android:style/TextAppearance.Holo.Small" /></LinearLayout>

自定义适配器:

public class ItemsListAdapter extends ArrayAdapter<ItemsList> {


private int[] colors = new int[] { 0x30ffffff, 0x30808080 };

public AssetListAdapter(Context context,
List<ItemsList> itemsList) {
super(context, 0, itemsList);

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.row, null);
}

convertView.setBackgroundColor(colors[position % colors.length]);

TextView code = (TextView) convertView.findViewById(R.id.row_code);
code.setText(getItem(position).getCode());

TextView name = (TextView) convertView.findViewById(R.id.row_name);
name.setText(getItem(position).getName());

return convertView;
}

和Activity的onCreate方法

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);

_listView = (ListView) findViewById(R.id.listview_items);
_listItems = new ArrayList<ItemsList>();

_listItems.add(new ItemsList ("cosa1", "cosa1", "cosa1", "cosa1"));
_listItems.add(new ItemsList ("cosa2", "cosa2", "cosa2", "cosa2"));
_listItems.add(new ItemsList ("cosa3", "cosa3", "cosa3", "cosa3"));

_adapter = new ItemsListAdapter(this, _listItems);
_listView.setAdapter(_adapter);

}

ItemsList 只是一个包含 4 个字符串的对象,并实现了所有的 getter。当我在适配器的 getView 方法中进行调试时,将创建 View (convertView) 并且它具有正确的信息。只是没有在屏幕上显示那些。我究竟做错了什么?

谢谢...

最佳答案

您的第二个 LinearLayout 的高度为 match_parent。请尝试使用 wrap_content

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp">

关于Android ListView 创建 View 但不显示它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13812075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com