我如何在开关盒中添加项目标题
How can i add an item title in a switch case
我正在为 onOptionsItemSelected
做一个转换案例,我想为这个项目分配一个标题值,但它不起作用。
问题出现在案例R.id.numTaula
,当我使用menu.Android时说:
Qualifier must be an expresion.
@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);
}
行中:
numTaula = input.getText().toString();
你到底在哪里定义什么是 numTaule?是字符串吗?
这可能是问题所在:
你有图书馆项目吗?如果是这样,请不要对资源 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
吗? Post代码。
我正在为 onOptionsItemSelected
做一个转换案例,我想为这个项目分配一个标题值,但它不起作用。
问题出现在案例R.id.numTaula
,当我使用menu.Android时说:
Qualifier must be an expresion.
@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);
}
行中:
numTaula = input.getText().toString();
你到底在哪里定义什么是 numTaule?是字符串吗?
这可能是问题所在:
你有图书馆项目吗?如果是这样,请不要对资源 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
吗? Post代码。