gpt4 book ai didi

android - If 语句给出的条件始终为真

转载 作者:行者123 更新时间:2023-12-02 06:12:45 25 4
gpt4 key购买 nike

当我使用 if 语句时,它告诉我条件 x 始终为真,尽管我在另一个应用程序中使用相同的代码并且它有效,但在本例中我在 onOptionsItemSelected 中使用它 我的菜单方法,有人可以帮忙吗?

public class Wellcome extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wellcome);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.chang_language, menu);
return true;
}
Boolean x=true;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.arabic) {
if (x =true) {
setLocale("en");
x = false;
} else if (x =false) {
setLocale("ar");
x = true;
}
return true;
}
return super.onOptionsItemSelected(item);
}
public void setLocale(String lang) {
java.util.Locale myLocale = new Locale(lang);
DisplayMetrics dm = getResources().getDisplayMetrics();
Configuration conf = getResources().getConfiguration();
conf.locale = myLocale;
getResources().updateConfiguration(conf, dm);
Intent refresh = new Intent(this, Wellcome.class);
startActivity(refresh);
}
}

最佳答案

您要分配一个变量,而不是仅使用逻辑错误的 Boolean 值,而应在语句中使用 x 本身:

if (x) {
setLocale("en");
x = false;
} else{
setLocale("ar");
x = true;
}

工作完成了!如果 x 的值为 true,则 if 语句将自行执行,但如果 xfalse 将执行 else,无需使用 === 进行比较,只需使用 bool 值本身。我的建议也是使用 boolean 而不是 Boolean 类。为了性能!

关于android - If 语句给出的条件始终为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55895793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com