所以我有一个带有一个 TextView 的 ListView ,我想向其中添加第二个 TextView 。但我无法弄清楚如何修改适配器,然后在我的主要 Activity 中调用它,即使在浏览了 stackoverflow 上的许多类似问题之后也是如此。
这是我的 CustomAdapter.java 现在的样子
class CustomAdapter extends ArrayAdapter<CharSequence>{
public CustomAdapter(Context context, CharSequence[] routes) {
super(context, R.layout.custom_row ,routes);
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater routeInflater = LayoutInflater.from(getContext());
View customView = convertView;
if(customView == null){customView = routeInflater.inflate(R.layout.custom_row, parent, false);}
CharSequence singleRoute = getItem(position);
TextView routeText = (TextView) customView.findViewById(R.id.routeText);
routeText.setText(singleRoute);
///// Textview I want to add
CharSequence routeNum = getItem(position);
TextView routeNumText = (TextView) customView.findViewById(R.id.numbersTextView);
routeNumText.setText(routeNum);
/////
return customView;
这是我的 MainActivity.java
///// fill listview numbers I want to add
final String[] routeListviewNumbers = getResources().getStringArray(R.array.routeNumbers);
//fill list view with xml array of routes
final String[] routeListViewItems = getResources().getStringArray(R.array.routeList);
//custom adapter for list view
ListAdapter routeAdapter = new CustomAdapter(this, routeListViewItems);
final ListView routeListView = (ListView) findViewById(R.id.routeListView);
routeListView.setAdapter(routeAdapter);
任何有关如何修改适配器然后在主 Activity 中调用它的帮助将非常感激。谢谢!
最佳答案
我建议创建一个自定义 Route 类,因为此适配器旨在处理一个数组。使用 getter 和 setter 方法为新类中的路由编号和路由项创建一些成员变量。然后,您应该能够在主 Activity 中创建 Route 对象的新数组列表,并迭代现有字符串数组,同时将它们(作为新 Route 对象)附加到新数组。
您必须更改适配器以接受 Route 对象而不是 CharSequence。希望这能为您指明正确的方向。
关于java - 将第二个 TextView 添加到 customAdapter ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40875413/