[英]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.