【问题标题】:View v is unreachable statementView v is unreachable 语句
【发布时间】:2018-08-12 22:48:52
【问题描述】:

请帮助我。 这是错误还是警告? 我该如何解决这个问题? 错误是View v is unreachable statement

public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 
    return super.getView(position, convertView, parent); 
    View v; 
    v = convertView; 
    LayoutInflater li = LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    v = li.inflate(R.layout.custom_layout, null);
    TextView champ = (TextView)v.findViewById(R.id.textView); 
    TextView year = (TextView)v.findViewById(R.id.textView2);
    ImageView pic = (ImageView)v.findViewById(R.id.imageView);
    champ.setText(adaptArray.get(position).getChamp()); year.setText(adaptArray.get(position).getYear()); pic.setImageResource(adaptArray.get(position).getSport());

    return v;
}

【问题讨论】:

  • 您的第一个return 语句将完全跳过该方法的其余部分。
  • 我猜你在 View v 之前返回的未格式化的混乱;
  • 删除此行return super.getView(position, convertView, parent)此语句使其余代码跳过。
  • 很清楚。您的 `View v` 无法访问,因为在该行之前您使用了 return :return super.getView(position, convertView, parent);
  • 第一条语句上的 return 将导致方法返回值并结束其范围。删除它,您的其余代码有望编译并运行。

标签: java android layout-inflater


【解决方案1】:

在 return 关键字之后写的其他任何内容都是无法访问的。 从函数的第一行删除 return super.getView(position, convertView, parent);

【讨论】:

    【解决方案2】:

    这是一个警告,告诉您对代码的静态分析表明您的某些代码将永远无法到达,因为该方法之前返回。

    以下是将convertView 传递给super.getView(...) 来解决问题和正确使用super.getView(...) 的方法:

    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 
    
        View v = super.getView(position, convertView, parent); 
        if(v == null){
            LayoutInflater li = LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = li.inflate(R.layout.custom_layout, null);
        }
        TextView champ = (TextView)v.findViewById(R.id.textView); 
        TextView year = (TextView)v.findViewById(R.id.textView2);
        ImageView pic = (ImageView)v.findViewById(R.id.imageView);
        champ.setText(adaptArray.get(position).getChamp()); 
        year.setText(adaptArray.get(position).getYear());    
        pic.setImageResource(adaptArray.get(position).getSport());
    
        return v;
    }
    

    【讨论】:

      【解决方案3】:

      删除这个

      return super.getView(position, convertView, parent);
      

      【讨论】:

      • 请您补充一些详细信息
      • 删除您的第一个退货声明。
      【解决方案4】:

      因为方法的Top这行代码:
      return super.getView(position, convertView, parent);

      当您从methodreturn 时,method内的其余代码不会运行。

      【讨论】:

        猜你喜欢
        • 2016-07-25
        • 2016-01-15
        • 2016-06-02
        • 1970-01-01
        • 2012-11-18
        • 1970-01-01
        • 1970-01-01
        • 2017-08-26
        • 1970-01-01
        相关资源
        最近更新 更多