Articles of listviewitem

根据列表项的数量动态更改列表视图中的行高

我正在创建一个Android应用程序,我在其中使用ListView。 ListView由CheckedTextView列表项组成。 我的活动在顶部包含一个EditText,在其下面包含一个TextView,在底部包含一个Button。 TextView和按钮之间的空间是ListView占用的区域。 现在,由于我的ListView包含相当少的项目,因此ListView的整个空间不会被它们占用。 此外,左侧空间明显因设备而异。 我想知道的是,是否有办法改变ListView的行高,以便覆盖分配给ListView的整个空间。 并且如果发生需要添加一些项目,行高度可以相应地调整自身。 我在下面提供了一些代码片段,以便很容易理解我的布局是什么样的。 activity_main.xml中 这些项是使用BaseAdapter实现的CheckedTextViews。 BaseAdapter类的View方法是 public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; int colorpos = position % colors.length; if(v == null){ LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.listviewitem, null); } CheckedTextView newrow = (CheckedTextView) v.findViewById(R.id.checkedtextview); v.setBackgroundColor(colors[colorpos]); newrow.setTextColor(Color.BLACK); newrow.setText(items[position]); return v; } 编辑:主要活动的片段 […]

在Android中迭代ListView项

我想将项目列表迭代到ListView中。 由于getChildCount()函数的奇怪行为(仅返回可见项目计数),下面的代码不足以将所有项目迭代到列表中。 for (int i = 0; i < list.getChildCount(); i++) { item = (View)list.getChildAt(i); product = (Product)item.getTag(); // make some visual changes if product.id == someProductId } 我的屏幕显示7个结果,当列表中有超过7个项目时,无法访问第8个项目。只有可见项目.. 我应该使用ListIterator吗? 谢谢。

android列表查看可点击的问题

我有这个自定义列表。 每行包含一个图像和两行文本,一行在另一行之下。 我想在点击任何列表项时打开一个新活动。 但即使在实现setOnItemClickListener()之后,我也无法这样做。 如果我错了,请纠正我。 以下是列表的代码。 PS:这是正常活动而不是列表活动。 l1.setAdapter(new EfficientAdapter(this,eventTitleArray,eventDateArray,eventImageLinkArray)); //l1 = getListView(); l1.setClickable(true); l1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView arg0, View arg1, int position, long arg3) { Intent intent = new Intent(MainActivity.this, DisplayActivity.class); Bundle b = new Bundle(); b.putString(“event”, eventTitleArray[position]); intent.putExtras(bundle); startActivity(intent); Toast.makeText(getApplicationContext(), “Opening detailed view for:”+eventTitleArray[position], Toast.LENGTH_SHORT).show(); } });

Listview错误:“您的内容必须有一个ListView,其id属性为’android.R.id.list’”

我的logcat中出现错误,说“你的内容必须有一个ListView,其id属性是’android.R.id.list’”。 我的代码编译并运行但是当我开始listview活动时强制关闭。 我检查了许多类似的问题,这似乎是一个常见的问题,但我仍然无法修复我的代码。 宣言: private ListView lv; Context mContext; List mList; String[] testcontacts; MessageView aa = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.firstlist); testcontacts = getResources() .getStringArray(R.array.testcontacts_array); aa = new MessageView(); lv = getListView();/*(ListView) lv.findViewById(R.id.list); Had to comment out, it cannot find list*/ lv.setAdapter(aa); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View […]

没有得到ListView的OnItemClick事件

我正在使用一个自定义列表视图。 当我点击listview时,我没有获得onClick事件。 这是我的代码。 lvlList = (ListView)findViewById(R.id.lvlList); lvlList.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView a, View v,int position, long id) { Toast.makeText(getBaseContext(), “Click”, Toast.LENGTH_LONG).show(); } }); lvlList.setAdapter(new OrderAdapter(getBaseContext())); OrderAdapter private class OrderAdapter extends BaseAdapter { private LayoutInflater mInflater; public OrderAdapter(Context context) { mInflater = LayoutInflater.from(context); } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; […]

自定义ListView在单击时不突出显示ListViewItem

我有一个自定义列表视图,由ImageView和TextView组成。 单击工作正常,但它不会像正常ListView那样突出显示该项目。 我该如何添加亮点? 我尝试通过在点击时设置背景颜色然后添加计时器来删除背景颜色来assembly它。 这有效,但我想要一个更好的解决方案。 有任何想法吗?

使用CursorAdapter的ListView分隔符

我有一个ListView,它使用CursorAdapter填充。 我还希望在ListView中有一些分隔符。 我用ArrayAdapter完成了这个,但是我不知道如何使用CursorAdapter完成这个。 这样做有什么策略吗? 还是我运气不好?

如何使用彩色项目的背景自定义ListView?

我创建了一个ArrayList<HashMap>集合来保存ListView数据。 我正在使用SimpleAdapter 。 当列表项的ID为%10 == 0时,是否可以更改列表项的背景? 这是代码(方法生成布局): private void fillData() { Cursor c = this.mDbManager.getNgOrderDetailByOrderNumber(this.mNumber); ArrayList<HashMap> items = new ArrayList<HashMap>(); if (!c.isAfterLast()) { do { // … filling HashMap and putting it to ArrayList } while (c.moveToNext()); } SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.list_item, new String[] { “product”, “ordered”, “price”, “discount” }, new int[] […]

android listview查看器。 什么时候使用它,何时不使用它

我有一个带有自定义列表适配器的ListView。 在getView()方法中,使用ViewHolder’模式’,如ListView14.java的API演示中所示。 当我第一次渲染列表时,似乎正确加载。 但是,我遇到的问题是,当我滚动列表时,我看到列表中的数据显示在错误的行中(例如,应该在第10行中的TextView显示在第2行中,例如)。 但是,当我不使用视图,而是每次都调用findViewById()时,列表视图会正确呈现。

如何在android主屏幕列表视图小部件中加载项目?

我目前正在开发一个Android项目,该项目利用Homescreen Widget向用户显示数据。 我在Widget中使用的视图是ListView 。 以下是我的代码: WidgetService类 public class WidgetService extends RemoteViewsService { @Override public RemoteViewsFactory onGetViewFactory(Intent intent) { return (new WidgetRemoteViewsFactory(this.getApplicationContext(), intent)); } } WidgetProvider类 public class WidgetProvider extends AppWidgetProvider { @Override public void onDeleted(Context context, int[] appWidgetIds) { super.onDeleted(context, appWidgetIds); } @Override public void onDisabled(Context context) { super.onDisabled(context); } @Override public void onEnabled(Context context) […]