java如何在一个ListView中显示字符串数组和整数数组
我最近开始制作一个Android应用程序,它要求每个名字都有20个名字和计数器,都显示在屏幕上。每次有人点击一个名字,该名字的计数器就会增加一个。这意味着名称和计数器需要以某种方式“连接”
我首先使用ListView
创建了一个基本的名字列表。这是我的代码:
public class ExampleActivity extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] NAMES = getResources().getStringArray(R.array.names_array);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, NAMES));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) //Shows toast with name
Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
}
}
这是列表项。xml文件:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
安卓:layout_width="fill_parent"
安卓:layout_height="fill_parent"
安卓:padding="10dp"
安卓:textSize="16sp" >
</TextView>
现在我正在寻找一种在列表中显示计数器的方法。在我看来,最方便用户的是一个列表,其中名称显示在左侧(目前是这种情况),其计数器显示在右侧(与名称在一行中;列表中的对齐不是我的问题)
然而,由于我只是一个Android的初学者,我不知道如何做到这一点。我的第一个问题是,我不知道如何将我的20个名字的列表与20个整数的列表合并,并使这些整数针对每个名字。我的第二个问题是如何在屏幕上显示所有这些
# 1 楼答案
在一个简单的
Model
类中组织行数据(名称+计数器):然后构建行布局以显示名称和计数器:
最后将
Model
数据绑定到行布局:要使用新适配器,请执行以下操作:
ListActivity
已经实现了OnItemClickListener
,即onListItemClick
方法:# 2 楼答案
最好的方法是设置一个自定义listview项目,该项目的名称和整数按您所需的方式组织。然后在onItemSelect侦听器中,只需增加该整数并调用notifyDataSetChanged。Samir提供的博客文章似乎是设置自定义listview项目的一个很好的起点