我有一个带有复选框、图像和文本字段的 ListView 。现在我确实想在文本字段中显示多个项目。问题是我想要整齐的列中的参数。我能否以某种方式在文本字段中设置制表位或格式或类似的东西,或者我是否必须实际创建更多文本字段并在其自己的字段中设置每个值?
我的列表应该看起来像:
[Image] [checkbox] "arg11 arg12 arg13"
[Image] [checkbox] "arg21 arg22 arg23"
[Image] [checkbox] "arg31 arg32 arg33"
感谢您的任何建议。
编辑:只是为了澄清事情。我已经有一个带有图像/复选框和一个文本字段的工作 ListView /适配器。我是 Android 的新手,所以我想知道是否有一种优雅的方式来处理在文本字段中显示多个文本项。在 Windows 中,我会简单地使用 tabstopps,它们看起来是有序的,并且在一列中,但我不太了解我在 android 周围的方式,不知道是否有类似的东西,或者是否需要单独的文本字段来获取列中的文本字段。
最佳答案
您创建新的 xml,比如 row.xml,我们可以在 ListView 中为每一行扩充它。
根据需要设计行,例如:
行.xml
<LinearLayout android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<ImageView ..../>
<CheckBox ...../>
<TextView ...../>
<TextView ...../>
</LinearLayout>
然后为您的 ListView 使用 CustomAdapter
喜欢,
listView.setAdapter(new CustomAdapter());
自定义适配器,
class CustomAdapter extends BaseAdapter{
publicCustomAdapter() {
mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return xyz.size();
}
@Override
public String getItem(int position) {
return xyz.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row, null);
holder = new ViewHolder();
holder.imageView = (ImageViewView)convertView.findViewById(R.id.image);
holder.checkbox = (CheckBox)convertView.findViewById(R.id.checkbox);
holder.textView1 = (TextView)convertView.findViewById(R.id.text1);
holder.textView2 = (TextView)convertView.findViewById(R.id.text2);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
//TODO set the values for views and return view
return convertView;
}
}
关于java - 如何在 Android/Java ListView 中显示多个文本项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9782367/