首先我们需要先写一个adapter,基本上都是根据需要来复写BaseAdapter
public class LanguageViewAdapter extends BaseAdapter {
private List<Language> languagelist = null;
private Context context;
private LayoutInflater inflater;
public LanguageViewAdapter(Context context, int resource, List<Language> objects) {
languagelist = objects;
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
if (languagelist!=null)
return languagelist.size();
else
return 0;
}
@Override
public Object getItem(int position) {
return languagelist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
Language language = (Language) languagelist.get(position);
ViewHolder holder = null;
if (convertView == null){
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.language_list_item,parent, false);
holder.languagetext = convertView.findViewById(R.id.language);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.languagetext.setText(language.getLanguage());
return convertView;
}
class ViewHolder {
private TextView languagetext;
}
然后我门还需要一个bean类,用来解析一个item的,存放一个item的所有数据。
package com.auro.app.vpn.bean;
public class Language {
private String code = "";
private String language;
public Language(String language, String code) {
this.code = code;
this.language = language;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
当bean类与adapter都写完,就可以写activity去实现listview了。
这里只需要在oncreat里面写这个方法就能够实现listview
mContentView = inflater.inflate(R.layout.fragment_language, container, false);
ListView languagelistview = mContentView.findViewById(R.id.languagelist);
initui();
LanguageViewAdapter languageViewAdapter = new LanguageViewAdapter(getContext(),R.layout.language_list_item,languagelist);
languagelistview.setAdapter(languageViewAdapter);
return mContentView;
}
private void initui(){
Language language = new Language("中文繁体","zh-tw");
languagelist.add(language);
language = new Language("中文简体","zh");
languagelist.add(language);
language = new Language("English","en");
}