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();
    }

    }

  • 相关阅读:
    [leetcode] Best Time to Buy and Sell Stock II
    [leetcode] Best Time to Buy and Sell Stock
    [leetcode] Binary Tree Maximum Path Sum
    [leetcode] Triangle
    [leetcode] Populating Next Right Pointers in Each Node II
    [leetcode] Pascal's Triangle II
    [leetcode] Pascal's Triangle
    第三周周总结
    基础DP
    第二周周总结
  • 原文地址:https://www.cnblogs.com/wangfeng520/p/6098066.html
Copyright © 2011-2022 走看看