所以我有一个带有一个textview的listview,我想为它添加第二个textview。但我无法弄清楚如何修改适配器,然后在我的主要活动中调用它,即使在查看了有关stackoverflow的许多类似问题之后。
继承人我的CustomAdapter.java现在是
plain txt infoSTX<xml ..xml message data.. /xml>ETX
并且继承了我的MainActivity.java
while (sr.Read(buffer, index, count) > 0)
{
/*
read my xml and parse, etc
*/
}
如何修改适配器然后在主要活动中调用它的任何帮助将非常感激。谢谢!
答案 0 :(得分:1)
我建议创建一个自定义Route类,因为这个适配器用于处理一个数组。使用getter和setter方法为路由编号和路由项创建一些成员变量。然后,您应该能够在主活动中创建一个新的Route对象数组列表,并迭代现有的字符串数组,同时将它们(作为新的Route对象)附加到新数组。
您必须更改适配器以接受Route对象而不是CharSequence。希望这能指出你正确的方向。
答案 1 :(得分:0)
我会为您推荐一个自定义适配器。 EXM .. 创建路线类
class Route{
public int number;
public String text;
}
基础适配器......
public class myBaseAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private List<Route> mRouteList;
public BilgiAdapter(Activity activity,List<Route> routeList){
mInflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mRouteList = routeList;
}
@Override
public int getCount() {
return mRouteList.size();
}
@Override
public Object getItem(int position) {
return mRouteList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View myView;
myView = mInflater.inflate(R.layout.line_layout,null);
Route r = mRouteList.get(position);
TextView txtRouteNumber = (TextView)myView.findViewById(R.id.textRouteNumber);
TextView txtRouteText = (TextView)myView.findViewById(R.id.textRouteText);
txtRouteNumber.setText(String.ValueOf(r.number));
txtRouteText.setText(String.ValueOf(r.text));
return myView;
}
}
MainActivity vs ..
ListView lstRoute;
myBaseAdapter adapter;
List<Route> list;
...
..
..
..
..
OnCreate(..)
..
list = new ArrayList<Route>();
//add routes in list
myBaseAdapter = new myBaseAdapter(MainActivity.this,list);
lstRoute = (ListView)findViewById(R.id.listViewRoute);
lstRoute.setAdapter(myBaseAdapter);
...
..
..
line_layout.xml(布局文件)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textRouteNumber"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textRouteText"/>
</LinearLayout>