listview多条目加载的类
来源:互联网 发布:天天向上 欧弟 知乎 编辑:程序博客网 时间:2024/05/16 09:13
public class MainActivity extends AppCompatActivity {
private ListView lv;
private static final int TYPE_0 = 0;
private static final int TYPE_1 = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
lv = (ListView) findViewById(R.id.lv);
//设置适配器
lv.setAdapter(new MyBaseAdapter());
}
class MyBaseAdapter extends BaseAdapter{
@Override
public int getCount() {
return 20;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public int getItemViewType(int position) {
//得到某个条目的类型 假设 1 : 左边图右边文字 2 左边是文字右边图
if(position % 2 == 0){//偶数
return TYPE_0;//0 ,1,2
}else{
return TYPE_1;
}
}
@Override
public int getViewTypeCount() {//指定你要在这个当前这个ListView显示几种类型的条目
return 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
/*TextView textView = new TextView(MainActivity.this);
textView.setText("点击放大镜放大看"+position);
textView.setHeight(100);*/
//得到指定条目的布局类型
int type = getItemViewType(position);
ViewHolder holder = null;
ViewHolder2 holder2 = null;
switch (type){
case 1:
{
if(convertView == null) {
holder = new ViewHolder();
convertView = convertView.inflate(MainActivity.this, R.layout.item1, null);
holder.ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon);
holder.tvContent = (TextView) convertView.findViewById(R.id.tvContent);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
}
break;
case 0: {
if (convertView == null) {
holder2 = new ViewHolder2();
convertView = convertView.inflate(MainActivity.this, R.layout.item2, null);
holder2.ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon);
holder2.tvContent = (TextView) convertView.findViewById(R.id.tvContent);
convertView.setTag(holder2);
} else {
holder2 = (ViewHolder2) convertView.getTag();
}
}
break;
}
//定义一个switch,填充数据
switch (type){
case 0:
{
holder2.tvContent.setText("大家都好都好");
}
break;
case 1:
{
holder.tvContent.setText("附近的开发基地附近的咖啡机");
}
break;
}
return convertView;
}
class ViewHolder{
ImageView ivIcon;
TextView tvContent;
}
class ViewHolder2{
ImageView ivIcon;
TextView tvContent;
}
}
}
private ListView lv;
private static final int TYPE_0 = 0;
private static final int TYPE_1 = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
lv = (ListView) findViewById(R.id.lv);
//设置适配器
lv.setAdapter(new MyBaseAdapter());
}
class MyBaseAdapter extends BaseAdapter{
@Override
public int getCount() {
return 20;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public int getItemViewType(int position) {
//得到某个条目的类型 假设 1 : 左边图右边文字 2 左边是文字右边图
if(position % 2 == 0){//偶数
return TYPE_0;//0 ,1,2
}else{
return TYPE_1;
}
}
@Override
public int getViewTypeCount() {//指定你要在这个当前这个ListView显示几种类型的条目
return 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
/*TextView textView = new TextView(MainActivity.this);
textView.setText("点击放大镜放大看"+position);
textView.setHeight(100);*/
//得到指定条目的布局类型
int type = getItemViewType(position);
ViewHolder holder = null;
ViewHolder2 holder2 = null;
switch (type){
case 1:
{
if(convertView == null) {
holder = new ViewHolder();
convertView = convertView.inflate(MainActivity.this, R.layout.item1, null);
holder.ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon);
holder.tvContent = (TextView) convertView.findViewById(R.id.tvContent);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
}
break;
case 0: {
if (convertView == null) {
holder2 = new ViewHolder2();
convertView = convertView.inflate(MainActivity.this, R.layout.item2, null);
holder2.ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon);
holder2.tvContent = (TextView) convertView.findViewById(R.id.tvContent);
convertView.setTag(holder2);
} else {
holder2 = (ViewHolder2) convertView.getTag();
}
}
break;
}
//定义一个switch,填充数据
switch (type){
case 0:
{
holder2.tvContent.setText("大家都好都好");
}
break;
case 1:
{
holder.tvContent.setText("附近的开发基地附近的咖啡机");
}
break;
}
return convertView;
}
class ViewHolder{
ImageView ivIcon;
TextView tvContent;
}
class ViewHolder2{
ImageView ivIcon;
TextView tvContent;
}
}
}
阅读全文
0 0
- listview多条目加载的类
- ListView的多条目加载
- ListView的多条目加载
- Listview的多条目加载
- ListView的多条目加载
- ListView的多条目加载
- ListView的多条目加载
- ListView的多条目加载
- ListView多条目加载
- ListView 多条目加载
- listview多条目加载
- ListView多条目加载
- listview多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- listview多条目加载
- hashmap遍历与删除代码样例
- Java String对象的经典问题(new String())
- 使用js判断,客户端是手机还是PC
- 关于Android中签名文件的问题
- CS231n课程笔记
- listview多条目加载的类
- document属性和操作
- MYSQL
- python做深度学习(四)
- 【模板】manacher
- Ubuntu+caffe训练cifar-10数据集
- poj1442 Black Box 堆维护
- 三.操作符——Java编程思想第4版学习笔记
- macos java环境配置