listview多条目加载的类
2017-07-18 19:36
274 查看
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;
}
}
}
相关文章推荐
- Android studio请求网络数据ListView异步加载展示文字条目 ImageLoadler加载图片
- Listview 多条目加载
- 新ListView多条目加载 4个(重要)
- listview多条目加载
- ListView多条目加载
- Android中给listview/gridview设置动画(逐条加载条目动画)
- listview多条目加载
- android listview分页加载的条目点击报错的问题
- ListView加载不同的条目
- listview多条目加载的基本adapter配置
- ImageLoader+网络请求+ListView多条目加载
- ListView多条目加载
- XListView多条目加载adpter
- Android Dialog中加载listView,listView 的条目自适应屏幕
- 仿 今日头条布局:TabLayout+ViewPager+Fragment+ListView多条目加载+Webview
- Listview多条目加载
- ListView多条目加载以及优化
- ListView多条目加载
- ListView多条目加载
- 多条目加载+XlistView刷新加载更多