Android 如何从类向ListView添加项?

Android 如何从类向ListView添加项?,android,listview,optimization,android-listview,refactoring,Android,Listview,Optimization,Android Listview,Refactoring,所以我有 List <Employers> employers 我的ListView是这样工作的: ArrayAdapter<String> adapter = new ArrayAdapter <String>(MainAcivity.this,android.R.layout.simple_list_item_1,receiveArray(employers)); ArrayAdapter=newArrayAdapter(MainAcivity.th

所以我有

List <Employers> employers 
我的ListView是这样工作的:

ArrayAdapter<String> adapter = new ArrayAdapter <String>(MainAcivity.this,android.R.layout.simple_list_item_1,receiveArray(employers));
ArrayAdapter=newArrayAdapter(MainAcivity.this,android.R.layout.simple_list_item_1,receiveArray(雇主));
其中receiveCategoryNames是:

private String[] receiveArray(List<Employers> employers){
    String [] employerArray= new String[employers.size()];
    for (int i=0; i<employerArray.length; i++){
        employerArray[i]=employers.get(i).getFullName();
    }
    return employerArray;
}
private String[]receiveArray(列出雇主){
String[]employerArray=新字符串[employers.size()];

对于(int i=0;i我不确定您想要什么

如果只想显示名称

然后

然后

然后

class CustomAdapter扩展了ArrayAdapter
{
列出数据;
拉平机;
公共CustomAdapter(上下文、列表数据){
超级(上下文、右布局、行、数据);
mInflater=LayoutInflater.from(上下文);
这个。数据=数据;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
视窗座;
if(convertView==null)
{
holder=新的ViewHolder();
convertView=mInflater.充气(R.layout.row,父项,false);
holder.tv1=(TextView)convertView.findViewById(R.id.textView1);
holder.tv2=(TextView)convertView.findViewById(R.id.textView2);
convertView.setTag(支架);
}否则
{
holder=(ViewHolder)convertView.getTag();
}
雇主e=数据.get(职位);
holder.tv1.setText(e.getFullName());
holder.tv2.setText(String.valueOf(e.getAge());
返回视图;
}
静态类视窗夹
{
文本视图tv1、tv2;
}
}
row.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="29dp"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="34dp"
        android:text="TextView" />

</RelativeLayout>

在这里,您将了解如何制作自定义适配器并使用它。

使用自定义适配器。您只想显示名称
public class Employers{
    private String fullName;
    private int age;

    public String getFullName() {
        return fullName;
    }

    public void setFullName(String fullName) {
            this.fullName = fullName;
    }

    public int getAge() {
            return age;
    }
    public void setAge(int age) {
            this.age = age;
    }

    @Override
    public String toString() {      // note the toString method
        // TODO Auto-generated method stub
        return this.fullName;
    }

}
  ArrayAdapter<Employers> adapter = new ArrayAdapter<Employers>(this,android.R.layout.simple_list_item_1,employers);
  lv.setAdapter(adapter);
CustomAdapter adapter= new CustomAdapter(ActivityName.this,employers);
lv.setAdapter(adapter);
class CustomAdapter extends ArrayAdapter<Employers>
{


    List<Employers> data;
    LayoutInflater mInflater;
    public CustomAdapter(Context context,List<Employers> data) {
        super(context, R.layout.row,data);
        mInflater = LayoutInflater.from(context);
        this.data=data;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder holder;
        if(convertView==null)
        {
            holder = new ViewHolder();
            convertView= mInflater.inflate(R.layout.row, parent,false);
            holder.tv1= (TextView) convertView.findViewById(R.id.textView1);
            holder.tv2= (TextView) convertView.findViewById(R.id.textView2);
            convertView.setTag(holder);
        }else
        {
            holder= (ViewHolder) convertView.getTag();
        }
        Employers e = data.get(position);
        holder.tv1.setText(e.getFullName());
        holder.tv2.setText(String.valueOf(e.getAge()));
        return convertView;
    }
    static class ViewHolder
    {
        TextView tv1,tv2;

    }

}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="29dp"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="34dp"
        android:text="TextView" />

</RelativeLayout>