繁体   English   中英

spinner中无法访问的代码android

[英]Unreachable code android in spinner

我正在“尝试”制作一个Android应用程序。 我试图让它成为当我创造一个

spinner if ... else突然显示“错误消息” Unreachable code

码:

Spinner localSpinner = (Spinner)findViewById(R.id.spinner);

ArrayAdapter localArrayAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, this.arr);

localArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

localSpinner.setAdapter(localArrayAdapter);

localSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()

{

public void onItemSelected(AdapterView<?> parent, View v, int pos, long id)
  {
    if (pos == 0)
    {
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab31)).setVisibility(View.VISIBLE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab32)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab33)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab34)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab35)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab36)).setVisibility(View.GONE);        
    }
    do
    {
      return;
      if (pos == 1)
      {
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab31)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab32)).setVisibility(View.VISIBLE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab33)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab34)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab35)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab36)).setVisibility(View.GONE);
        return;
      }
      if (pos == 2)
      {
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab31)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab32)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab33)).setVisibility(View.VISIBLE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab34)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab35)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab36)).setVisibility(View.GONE);
        return;
      }
      if (pos == 3)
      {
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab31)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab32)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab33)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab34)).setVisibility(View.VISIBLE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab35)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab36)).setVisibility(View.GONE);
        return;
      }
      if (pos == 4)
      {
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab31)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab32)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab33)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab34)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab35)).setVisibility(View.VISIBLE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab36)).setVisibility(View.GONE);
        return;
      }
    }

    while (pos != 5);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab31)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab32)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab33)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab34)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab35)).setVisibility(View.GONE);
      ((LinearLayout)MainKasama.this.findViewById(R.id.tab36)).setVisibility(View.VISIBLE);
  }

  public void onNothingSelected(AdapterView<?> parent) {}
});

我的代码中还有一个问题

码:

import android.app.AlertDialog.Builder;

final AlertDialog.Builder Builder = new AlertDialog.Builder(this);

有一个错误消息AlertDialog cannot be resolved to a type如何修复该错误

谢谢你回答我的问题

do
{
  return;  // remove this return 
  if (pos == 1)

@Pulkit Sethi的答案是正确的,但他没有说明为什么你必须删除该return 您可能错误地插入了一个return ,或者您可能不知道该return将执行什么操作。 我正在考虑后者作为案例,从而提供解释。

每当编译器以任何编程语言获得return ,它立即退出循环并且不执行下面的所有语句。 这就是为什么你在spinner中获得无法访问的代码android的原因。

在您的活动中,这段代码在哪里:final AlertDialog.Builder Builder = new AlertDialog.Builder(this);

检查它是否在监听器或其他地方,指定“context = this;” 在你的活动的oncreate或onresume

AlertDialog.Builder的“this”可能不是上下文

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM