Android 具有插入功能的ListView和多个TextView
我想在listview行中使用多(2)个文本视图。我想我必须创建自定义适配器,但有了这个适配器,每当我单击诸如:Android 具有插入功能的ListView和多个TextView,android,listview,android-arrayadapter,Android,Listview,Android Arrayadapter,我想在listview行中使用多(2)个文本视图。我想我必须创建自定义适配器,但有了这个适配器,每当我单击诸如:mAdapter.insert(mytext1,mytext2,0)之类的按钮时,我想使用insert multiple data to position 0 但我无法使用示例适配器实现这一点: public class Durations { private String name; private String address;
mAdapter.insert(mytext1,mytext2,0)之类的按钮时,我想使用insert multiple data to position 0代码>
但我无法使用示例适配器实现这一点:
public class Durations {
private String name;
private String address;
public Durations(String name, String address) {
this.name = name;
this.address = address;
}
public void setName(String name) {
this.name= name;
}
public String getName() {
return name;
}
public void setAddress(String address) {
this.address= address;
}
public String getAddress() {
return address;
}
}
public class CustomAdapter extends ArrayAdapter {
private final Activity activity;
private final List list;
public CustomAdapter(Activity activity, ArrayList<Durations> list) {
this.activity = activity;
this.list = list;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
ViewHolder view;
if(rowView == null)
{
// Get a new instance of the row layout view
LayoutInflater inflater = activity.getLayoutInflater();
rowView = inflater.inflate(R.layout.row, null);
// Hold the view objects in an object, that way the don't need to be "re- finded"
view = new ViewHolder();
view.retaurant_name= (TextView) rowView.findViewById(R.id.text1);
view.restaurant_address= (TextView) rowView.findViewById(R.id.text2);
rowView.setTag(view);
} else {
view = (ViewHolder) rowView.getTag();
}
return rowView;
}
protected class ViewHolder{
protected TextView retaurant_name;
protected TextView restaurant_address;
}
}
公共类持续时间{
私有字符串名称;
私有字符串地址;
公共持续时间(字符串名称、字符串地址){
this.name=名称;
this.address=地址;
}
公共void集合名(字符串名){
this.name=name;
}
公共字符串getName(){
返回名称;
}
公共无效设置地址(字符串地址){
这个地址=地址;
}
公共字符串getAddress(){
回信地址;
}
}
公共类CustomAdapter扩展了ArrayAdapter{
私人最终活动;
私人最终名单;
公共CustomAdapter(活动,ArrayList列表){
这个。活动=活动;
this.list=列表;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行视图=转换视图;
视图持有者视图;
if(rowView==null)
{
//获取行布局视图的新实例
LayoutInflater充气器=活动。getLayoutInflater();
rowView=充气机。充气(R.layout.row,空);
//在对象中保留视图对象,这样就不需要“重新查找”
视图=新的ViewHolder();
view.restaurant_name=(TextView)rowView.findViewById(R.id.text1);
view.restaurant_address=(TextView)rowView.findViewById(R.id.text2);
rowView.setTag(视图);
}否则{
view=(ViewHolder)rowView.getTag();
}
返回行视图;
}
受保护类视窗持有人{
受保护的文本视图保留名称;
受保护的文本视图地址;
}
}
您需要为此覆盖ArrayAdapter函数。因为您使用的是ViewHolder,所以它也将重用布局
getItem(int position)
getItemId(int position)
您可以很容易地找到基于定义自定义适配器的各种教程。该按钮对于列表很常见,还是放在每行中?
getItem(int position)
getItemId(int position)