运用AndroidStudio来实现
这个方式可以自定义listview的列表
这里运用工厂模式来写
首先需要一个pojo类 我建立一个公司类
package com.example.ryan.hatching.pojo;
public class Company {
public Integer getImageid() {
return imageid;
}
public void setImageid(Integer imageid) {
this.imageid = imageid;
}
public String getCompanyname() {
return companyname;
}
public void setCompanyname(String companyname) {
this.companyname = companyname;
}
public String getSheng() {
return sheng;
}
public void setSheng(String sheng) {
this.sheng = sheng;
}
public String getShi() {
return shi;
}
public void setShi(String shi) {
this.shi = shi;
}
public String getQu() {
return qu;
}
public void setQu(String qu) {
this.qu = qu;
}
private Integer imageid;
private String companyname;
private String sheng;
private String shi;
private String qu;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
private Integer id;
}
pojo类建立完毕需要重写一份ArrayAdapter
我这里直接用项目来实验了
package com.example.ryan.hatching.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.example.ryan.hatching.R;
import com.example.ryan.hatching.pojo.Company;
import java.util.List;
public class CompanyAdapter extends ArrayAdapter<Company> {
private Context context;
private int resource;
private List<Company> companies;
private ListView listView;
public CompanyAdapter(@NonNull Context context, int resource, List<Company> companies, ListView listView) {
super(context, resource);
this.context=context;
this.resource=resource;
this.companies=companies;
this.listView=listView;
}
@Override
public int getCount() {
return companies.size() ;
}
@Nullable
@Override
public Company getItem(int position) {
return companies.get(position);
}
@NonNull
@Override
public View getView(int position,@Nullable View convertView,@NonNull ViewGroup parent) {
if (convertView==null){
convertView=LayoutInflater.from(this.getContext()).inflate(resource,parent,false);
}
TextView companynameTv,shengTv,shiTv,quTv,idTv;
ImageView logoImg;
logoImg=convertView.findViewById(R.id.logoImg);
companynameTv=convertView.findViewById(R.id.companynameTv);
shengTv=convertView.findViewById(R.id.shengTv);
shiTv=convertView.findViewById(R.id.shiTv);
quTv=convertView.findViewById(R.id.quTv);
idTv=convertView.findViewById(R.id.idTv);
logoImg.setImageResource(companies.get(position).getImageid());
companynameTv.setText(companies.get(position).getCompanyname());
shengTv.setText(companies.get(position).getSheng());
shiTv.setText(companies.get(position).getShi());
quTv.setText(companies.get(position).getQu());
idTv.setText(companies.get(position).getId()+"");
return convertView;
}
}
这个主界面布局就很简单了一个listview就可以
<ListView
android:id="@+id/ComLv"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
当人我们需要一个listview的布局文件
```Android
<?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">
<TextView
android:id="@+id/idTv"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="50dp" />
<ImageView
android:src="@drawable/logo"
android:id="@+id/logoImg"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="50dp"/>
<LinearLayout
android:orientation="vertical"
android:layout_weight="5"
android:layout_width="0dp"
android:layout_height="50dp">
<TextView
android:id="@+id/companynameTv"
android:text="创孵 "
android:layout_width="wrap_content"
android:layout_height="25dp" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="25dp">
<TextView
android:id="@+id/shengTv"
android:text="省"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/shiTv"
android:text="市"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/quTv"
android:text="区"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
接下来就是直接main函数引用
private ArrayList<View> aList;
private ListView ComLv;
private List<Company> companies;
private CompanyAdapter companyAdapter;
#这是定义
然后需要具体的传值
```Android
private void Companyshow() {
companies=new ArrayList<>();
companyAdapter=new CompanyAdapter(getActivity(),R.layout.company_adapter,companies,ComLv);
for (int i=0; i<id.length;i++){
Company c=new Company();
c.setId(i);
c.setImageid(img[i]);
c.setCompanyname(Comname[i]);
c.setSheng(sheng[i]);
c.setShi(shi[i]);
c.setQu(qu[i]);
companies.add(c);
}
ComLv.setAdapter(companyAdapter);
}
网友评论