java - 如何在baseadapter android中处理ArrayList中的空值

标签 java android baseadapter

我有一个 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;

    }

enter image description here

我想处理如果listData.get(position).getpersen_hke1()为空值,它会是holder.persen_hke1.setText("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;
}

关于java - 如何在baseadapter android中处理ArrayList中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17057552/

相关文章:

java - 将协议(protocol)中的@可选选择器移植到Java接口(interface)

android - 如何防止在 Nexus 4 上的 Android Chrome 中下载 "dekstop"css?

java - 我想在我的 Android 应用程序中使用大整数,但是当我应用运算符时我会收到错误?

java - 将 C 字符串数组移动到 Java 空间的更有效方法

java - Spring-Integration 中的安全模型

java - Android 中的 PNG 图像和 InputStream

Android - 在 Android 11 上以用户身份运行时无法启动 "am start"的 Activity

java - 在 BaseAdapter 中将 hasStableIds() 设置为 false 有什么好处?

android - Fragment 中带有自定义适配器的 ListView

android - 当我更改已经可见的 TextView 的文本时,我的 ListView 中的第一项不会更新