Я делаю переключение на onOptionsItemSelected
, и я хочу присвоить значение заголовка для этого элемента, но это не работает.
Проблема возникает в случае R.id.numTaula
, когда я использую menu.Android говорит:
Квалификатор должен быть выражением.
@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);
}
2 ответа
Вероятно, в этом проблема: https://stackoverflow.com/a/9093594/535762
У вас есть проект библиотеки? Если это так, не используйте переключатель для идентификаторов ресурсов, они больше не являются константами.
РЕДАКТИРОВАТЬ:
Хорошо, я неправильно понял вашу проблему, так что это из-за какой-то проблемы с типом.
Но сначала попробуйте вот так:
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
? Разместите код.
В линии:
numTaula = input.getText().toString();
Где именно вы определяете, что такое нумале? Это строка?
Похожие вопросы
Связанные вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.