zoukankan      html  css  js  c++  java
  • 自定义adapter实现listview双列显示

    package com.appshare;

    import java.util.ArrayList;
    import java.util.List;

    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;

    public class DoubleAdapter extends BaseAdapter implements OnClickListener{
    private List<String> datas = new ArrayList<String>();
    private Context context;

    public DoubleAdapter(Context context,List<String> datas){
    this.context = context;
    this.datas = datas;
    }
    @Override
    public int getCount() {
    return datas.size() % 2 == 0 ? datas.size() / 2 : datas.size() / 2 + 1;
    }

    @Override
    public Object getItem(int position) {
    return null;
    }

    @Override
    public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    ViewHodler hodler = null;
    if(convertView == null){
    hodler = new ViewHodler();
    LayoutInflater inflater = LayoutInflater.from(context);
    convertView = inflater.inflate(R.layout.item, null);
    hodler.textView1 = (TextView) convertView.findViewById(R.id.text1);
    hodler.textView2 = (TextView) convertView.findViewById(R.id.text2);
    hodler.layout1 = (LinearLayout) convertView.findViewById(R.id.item_layout1);
    hodler.layout2 = (LinearLayout) convertView.findViewById(R.id.item_layout2);

    convertView.setTag(hodler);
    }else{
    hodler = (ViewHodler) convertView.getTag();
    }

    String item1 = "";
    String item2 = "";

    if(position * 2 + 1 < datas.size()){
    item1 = datas.get(position * 2);
    item2 = datas.get(position * 2 + 1);
    }else if(position * 2 + 1 == datas.size()){
    item1 = datas.get(position * 2);
    item2 = "";
    }

    if(item1 != null){
    hodler.textView1.setText(item1);
    hodler.layout1.setOnClickListener(this);
    hodler.layout1.setTag(item1);
    }

    if(item2 != null){
    hodler.textView2.setText(item2);
    hodler.layout2.setOnClickListener(this);
    hodler.layout2.setTag(item2);
    }




    return convertView;
    }

    class ViewHodler {
    TextView textView1;
    TextView textView2;
    LinearLayout layout1;
    LinearLayout layout2;
    }

    @Override
    public void onClick(View v) {
    Toast.makeText(context, v.getTag().toString(), Toast.LENGTH_LONG).show();
    }

    }

  • 相关阅读:
    cassandra复制到一个新机器编译失败的问题
    cassandra在服务端像leveldb一样进行插入初试成功
    git push不成功 insufficient permission for adding an object to repository database
    fuse进级
    fuse入门
    cassandra的写过程
    cassandra-执行请求入口函数
    cassandra-replication_factor 和 consistency level
    根据金额大小升序排序
    PL/SQL Developer连接本地Oracle 11g 64位数据库(转)
  • 原文地址:https://www.cnblogs.com/wangfeng520/p/6098066.html
Copyright © 2011-2022 走看看