copy可直接用,废话不多说。
1.封装:
/**
* Created by Administrator on 2018/9/1.
*/
public abstract class BaseAdapter<A> extends android.widget.BaseAdapter {
private Context context;
private List<A> list;
public BaseAdapter(Context context) {
this.context = context;
}
public void setList(List<A> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position) == null ? 0 : list.size();
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
baseHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.layout_test, parent, false);
holder = new baseHolder(convertView);
convertView.setTag(holder);
} else {
holder = (baseHolder) convertView.getTag();
}
holder.bindview(list.get(position));
return convertView;
}
class baseHolder extends RecyclerView.ViewHolder {
@BindView(R.id.text)
TextView text;
public baseHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
public void bindview(A a) {
bind(this,a);
}
}
public abstract void bind(baseHolder holder,A a);
}
2.继承使用:
/**
* Created by Administrator on 2018/9/1.
*/
public class MyAdapter extends BaseAdapter<test> {
public MyAdapter(Context context) {
super(context);
}
@Override
public void bind(baseHolder holder, test test) {
holder.text.setText(test.getName());
}
}
3.test:
/**
* Created by Administrator on 2018/9/1.
*/
public class test {
private String name="hello world !";
public test(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4.Activity中使用:
/**
* Created by Administrator on 2018/9/1.
*/
public class MyActivity extends AppCompatActivity {
@BindView(R.id.list_item)
ListView listItem;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
inti();
}
private void inti() {
List<test> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
list.add(new test(i + ".I like android !"));
}
MyAdapter adapter = new MyAdapter(this);
adapter.setList(list);
listItem.setAdapter(adapter);
}
}
end...