1

ArrayList と 1 つの BaseAdapter を使用してレイアウトを拡張します。arraylist の 1 つの配列が空の場合、レイアウトの値にテキスト "NaN%" が表示されるのはとても面倒です。arraylist の空の配列を setText として (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 に答える