我正在将一个切换案例转换为onOptionsItemSelected
,我想为此项目分配一个标题值,但它不起作用。
当我使用menu.Android时,R.id.numTaula
案例出现了问题:
限定符必须是表达式。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle action bar actions click
switch (item.getItemId()) {
case R.id.action_settings:
return true;
case R.id.carrito:
carrito c = new carrito();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.frame_container, c);
ft.commit();
return true;
case R.id.alerta:
AlertDialog.Builder cambrer = new AlertDialog.Builder(this);
cambrer.setTitle("Demanar cambrer");
cambrer.setMessage("Està seguir que desitja l'atenció del cambrer?");
cambrer.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
alertaCambrer = true;
}
});
cambrer.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
alertaCambrer = false;
}
});
cambrer.show();
break;
case R.id.numTaula:
AlertDialog.Builder AlertTaula = new AlertDialog.Builder(this);
AlertTaula.setTitle("Numero de taula");
AlertTaula.setMessage("Introdueix el numero de taula");
// Set an EditText view to get user input
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setRawInputType(Configuration.KEYBOARD_12KEY);
AlertTaula.setView(input);
AlertTaula.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
numTaula = input.getText().toString();
menu.findItem(R.id.numTaula).setTitle(numTaula);
}
});
AlertTaula.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
AlertTaula.show();
break;
default:
return super.onOptionsItemSelected(item);
}return super.onOptionsItemSelected(item);
}
答案 0 :(得分:0)
在行中:
numTaula = input.getText().toString();
你究竟在哪里定义什么是numale?它是String?
答案 1 :(得分:0)
这可能是问题所在: https://stackoverflow.com/a/9093594/535762
你有图书馆项目吗?如果是这样,不要使用交换机作为资源ID,它们不再是常量。
编辑:
好的,我误读了你的问题,所以这是因为某种类型的问题。
但首先尝试这样:
EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setRawInputType(Configuration.KEYBOARD_12KEY);
AlertTaula.setView(input);
AlertTaula.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public EditText input;
// init method to set init values
public DialogInterface.OnClickListener init(EditText input) {
this.input = input;
return this;
}
public void onClick(DialogInterface dialog, int whichButton) {
menu.findItem(R.id.numTaula).setTitle(input.getText().toString());
}
}.init(input));
您的接口实现不需要最终的东西。
那么numTaula究竟是什么?这似乎是一个数字?类型真的是String
吗?发布代码。