В моем приложении есть диалоговое окно, позволяющее пользователю выбрать элемент. Когда кнопка ok нажата, приложение должно набрать номер, связанный с элементом. Я могу получить элементы, отображаемые в диалоговом окне, и приложение знает, что это параметры, но мне трудно понять, как сделать процесс приложения, который был выбран, а затем набрать номер. Вот что у меня до сих порКак сообщить приложению, что делать после выбора элемента из диалога?
final CharSequence[] item = {"item1", "item2", "item3", "item4"};
AlertDialog.Builder ab=new AlertDialog.Builder(crossingActivity.this);
ab.setTitle("Which item?");
ab.setSingleChoiceItems(item, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
})
.setPositiveButton("Call", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if item = "item1"? android.intent.action.DIALtel:"number1";
if item = "item2"? android.intent.action.DIALtel:"number2";
if item = "item3"? android.intent.action.DIALtel:"number3";
if item = "item4"? android.intent.action.DIALtel:"number4";
открывает диалоговое окно и позволяет выбрать элемент, а вот где я застрял. Eclipse дает мне ошибку во всех «if» s, которые говорят: «Синтаксическая ошибка на токене« if », недопустимый тип. Я думаю, что я только начинаю ошибаться, и я просто не знаю, как начать правильно ...
Технически == работает для строк, потому что они неизменяемы и объединены, однако это не рекомендуется делать и плохой стиль – LINEMAN78
@ LINEMAN78 Вы правы, это не синтаксическая ошибка, и она будет работать иногда, но вы не может гарантировать, что он будет работать все время, с любым jre, так что просто путает проблему. –
Согласен, я просто указывал, что оператор == только сравнивает ячейки памяти для объектов, которые для большинства JRE будут работать из-за пула строк. Но я верю, что ваше решение является правильным и должно быть реализовано. Кроме того, тройные операторы Java требуют, чтобы результат отдельных операторов возвращал что-то другое, кроме void, и был назначен, и его нельзя использовать исключительно как замену для оператора if/else. – LINEMAN78