1

我有一个 ArrayList 和一个 BaseAdapter 来扩充我的布局,当来自 arraylist 的一个数组为空时,布局上的值显示文本“NaN%”太烦人了,我想用 setText 处理我的arraylist 中的一个空数组(0% )。那么如何在baseadapter android中处理来自ArrayList的空值?这是我的代码:

   public class TabelNABDetail extends BaseAdapter {
    Context context;
    ArrayList<NabDetail> listData;//stack
    int count;

    public TabelNABDetail(Context context, ArrayList<NabDetail>listData){
        this.context=context;
        this.listData=listData;
        this.count=listData.size();
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
//      return count;
        return (listData==null) ? 0 : listData.size();
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

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

    @Override
    public View getView(int position, View v, ViewGroup parent) {
        // TODO Auto-generated method stub
        View view= v;
        ViewHolder holder= null;


        if(view==null){
            LayoutInflater inflater=(LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
            view= inflater.inflate(R.layout.layout_tabel_detailnab, null);
            holder=new ViewHolder();
            holder.persen_hke1=(TextView)view.findViewById(R.id.varpersenke1);
            view.setTag(holder);
        }
        else{
            holder=(ViewHolder)view.getTag();

        }

        if (position==0) {
            holder.persen_hke1.setText("0%");


    } else {
        holder.persen_hke1.setText(String.format("%.5f",listData.get(position).getpersen_hke1())+"%");

    }
        return view;
    }

    static class ViewHolder{
        TextView ,persen_hke1;

    }

在此处输入图像描述

如果 listData.get(position).getpersen_hke1() 为空值,我想处理,这将holder.persen_hke1.setText("0%")如何解决?谢谢之前

4

1 回答 1

0

像这样更改您的 getView()

@Override
public View getView(int position, View v, ViewGroup parent) {
    // TODO Auto-generated method stub
    View view= v;
    ViewHolder holder= null;

    if(view==null){
       LayoutInflater inflater=(LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
       view= inflater.inflate(R.layout.layout_tabel_detailnab, null);
       holder=new ViewHolder();
       holder.persen_hke1=(TextView)view.findViewById(R.id.varpersenke1);
       view.setTag(holder);
    } else {
        holder=(ViewHolder)view.getTag();
    }

    if (position==0) {
       holder.persen_hke1.setText("0%");
    } else {
       **/////// these lines are extra lines add into your code** 

       NabDetail nabDetail = listData.get(position)
       if(!nabDetail.getpersen_hke1().equals(""))
          holder.persen_hke1.setText(String.format("%.5f",listData.get(position).getpersen_hke1())+"%");
       } else {
          holder.persen_hke1.setText("0%");
       }
    }
    return view;
}
于 2013-06-12T04:22:04.547 回答