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>