为什么这个字符串无法解析?
How come this string cannot be resolved?
此代码是单击列表视图时弹出的上下文菜单的一部分。我试图通过是否选中 CheckBox 来获取用户结果。问题是我正在创建的字符串无法解析。
代码如下:
final CheckBox input11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult);
alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString();
String turntupheho = blazeIt.replace(" --COMPLETE", "");
String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", "");
if (input11.isChecked()) {
String bigbutt = " --COMPLETE";
} else {
String bigbutt = " -INCOMPLETE";
}
items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt'
itemsAdapter.notifyDataSetChanged();
writeItems();
}
}
);
编辑:抱歉简单的错误(忘记声明字符串);我还在学习。谢谢大家的快速回复。
你可以试试这个:
String bigbutt;
if (input11.isChecked())
{
bigbutt = " --COMPLETE";
} else {
bigbutt = " -INCOMPLETE";
}
这是一个基本的 Java 问题,而不是 android 问题,只需简单地寻找答案即可。
无论如何,这是解决问题所需的代码
final CheckBox input11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult);
alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString();
String turntupheho = blazeIt.replace(" --COMPLETE", "");
String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", "");
String bigbutt="";
if (input11.isChecked()) {
bigbutt = " --COMPLETE";
} else {
bigbutt = " -INCOMPLETE";
}
items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt'
itemsAdapter.notifyDataSetChanged();
writeItems();
}
}
);
字符串没有被解析的原因是因为你在 if 条件内定义了 bigbutt,只给它 if 条件的范围,但是你在 if 条件之外使用它,它也在 if 条件之外它的范围。
Check now just declare variable outside condition. Silly mistake.
最终复选框输入 11 = (CheckBox)
textEntryView2.findViewById(R.id.checkBoxResult);
alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString();
String turntupheho = blazeIt.replace(" --COMPLETE", "");
String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", "");
String bigbutt="";
if (input11.isChecked()) {
bigbutt = " --COMPLETE";
} else {
bigbutt = " -INCOMPLETE";
}
items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt'
itemsAdapter.notifyDataSetChanged();
writeItems();
}
}
);
As Java 在块内具有局部变量的范围,因此您需要在块外声明。
final CheckBox input11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult);
alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString();
String turntupheho = blazeIt.replace(" --COMPLETE", "");
String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", "");
String bigbutt = ""; // Declaration needs here
if (input11.isChecked()) {
bigbutt = " --COMPLETE";
} else {
bigbutt = " -INCOMPLETE";
}
items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt'
itemsAdapter.notifyDataSetChanged();
writeItems();
}
}
);
问题是字符串变量的范围,
在 if/else 块外声明 bigbutt。
此代码是单击列表视图时弹出的上下文菜单的一部分。我试图通过是否选中 CheckBox 来获取用户结果。问题是我正在创建的字符串无法解析。
代码如下:
final CheckBox input11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult);
alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString();
String turntupheho = blazeIt.replace(" --COMPLETE", "");
String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", "");
if (input11.isChecked()) {
String bigbutt = " --COMPLETE";
} else {
String bigbutt = " -INCOMPLETE";
}
items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt'
itemsAdapter.notifyDataSetChanged();
writeItems();
}
}
);
编辑:抱歉简单的错误(忘记声明字符串);我还在学习。谢谢大家的快速回复。
你可以试试这个:
String bigbutt;
if (input11.isChecked())
{
bigbutt = " --COMPLETE";
} else {
bigbutt = " -INCOMPLETE";
}
这是一个基本的 Java 问题,而不是 android 问题,只需简单地寻找答案即可。
无论如何,这是解决问题所需的代码
final CheckBox input11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult);
alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString();
String turntupheho = blazeIt.replace(" --COMPLETE", "");
String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", "");
String bigbutt="";
if (input11.isChecked()) {
bigbutt = " --COMPLETE";
} else {
bigbutt = " -INCOMPLETE";
}
items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt'
itemsAdapter.notifyDataSetChanged();
writeItems();
}
}
);
字符串没有被解析的原因是因为你在 if 条件内定义了 bigbutt,只给它 if 条件的范围,但是你在 if 条件之外使用它,它也在 if 条件之外它的范围。
Check now just declare variable outside condition. Silly mistake.
最终复选框输入 11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult);
alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString();
String turntupheho = blazeIt.replace(" --COMPLETE", "");
String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", "");
String bigbutt="";
if (input11.isChecked()) {
bigbutt = " --COMPLETE";
} else {
bigbutt = " -INCOMPLETE";
}
items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt'
itemsAdapter.notifyDataSetChanged();
writeItems();
}
}
);
As Java 在块内具有局部变量的范围,因此您需要在块外声明。
final CheckBox input11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult);
alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString();
String turntupheho = blazeIt.replace(" --COMPLETE", "");
String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", "");
String bigbutt = ""; // Declaration needs here
if (input11.isChecked()) {
bigbutt = " --COMPLETE";
} else {
bigbutt = " -INCOMPLETE";
}
items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt'
itemsAdapter.notifyDataSetChanged();
writeItems();
}
}
);
问题是字符串变量的范围, 在 if/else 块外声明 bigbutt。