Adapter部分
1. 所写类要继承Adapter(BaseAdapter)
public class Adapter2 extends BaseAdapter {
2. 写一个构造函数Adapter2(Context context){ }
private Context context;
Adapter2(Context context) {
this.context = context;
}
3. 再重写方法前,手动创建一个静态类,用于存放需要填充的控件。
static class ViewHolder {
ImageView img2;
TextView tv1;
TextView tv2;
}
4. 重写方法
getCount():决定要执行多少行
position:获得getCount()的返回值;运行时,代表当前所处位置(第几行)。
@Override
public int getCount() {
return rows;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return convertView;
}
5.重写getView(int position , View convertView , ViewGroup parent) 方法
步骤:
1. 实例化控件类ViewHolder。
2. 利用填充器填充convertView。
3. 利用convertView找到各个控件。
4. 可以给各个控件重新赋值。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
convertView = View.inflate(context, layout.activity_adapter2, null);
holder.img2 = convertView.findViewById(R.id.img2);
holder.tv1 = convertView.findViewById(R.id.tv1);
holder.tv2 = convertView.findViewById(R.id.tv2);
holder.img2.setImageResource(drawable.chrome);
holder.tv1.setText("This is a Title");
holder.tv2.setText("播放量:111万");
return convertView;
}
5. 完成Adapter的工作。
ListView部分
1. 首先,要在activity中创建一个<ListView>。
2. 类继承AppCompatActivity。
3. 声明要使用的控件ListView。
4. 重写方法。
步骤:
1.找到声明的ListView控件的位置。
2. 为ListView控件设置适配器。
public class listview2 extends AppCompatActivity {
private ListView lv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview2);
lv2=findViewById(R.id.lv2);
lv2.setAdapter(new Adapter2(this));
}
}
源码Adapter2.java
package com.example.classtask.listview2;
import androidx.appcompat.app.AppCompatActivity;
import com.example.classtask.R;
import static com.example.classtask.R.*;
public class Adapter2 extends BaseAdapter {
private int rows = 20;
private Context context;
static class ViewHolder {
ImageView img2;
TextView tv1;
TextView tv2;
}
Adapter2(Context context) {
this.context = context;
}
@Override
public int getCount() {
return rows;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
convertView = View.inflate(context, layout.activity_adapter2, null);
holder.img2 = convertView.findViewById(R.id.img2);
holder.tv1 = convertView.findViewById(R.id.tv1);
holder.tv2 = convertView.findViewById(R.id.tv2);
holder.img2.setImageResource(drawable.chrome);
holder.tv1.setText("This is a Title");
holder.tv2.setText("播放量:111万");
return convertView;
}
}
源码listview2.java
package com.example.classtask.listview2;
public class listview2 extends AppCompatActivity {
private ListView lv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview2);
lv2=findViewById(R.id.lv2);
lv2.setAdapter(new Adapter2(this));
}
}