Итак, на данный момент я делаю приложение для Android с несколькими файлами макетов, которые меняются при нажатии кнопки. В настоящее время у меня есть проблема. У меня есть пользователь, который нажимает кнопку, которая открывает AlertDialog с несколькими переключателями, они выбирают одну и затем нажимают Ok. Это устанавливает глобальный CharSequence
Затем, когда они уверены, что это то, что они хотят, они нажимают Готово, чтобы перейти к следующему экрану. Вот код для кнопки Готово.
<Button android:layout_height="wrap_content" android:id="@+id/doneEventButton" android:text="@string/doneEventButton" android:layout_width="138dp" android:onClick="nextEvent"></Button>
А вот код для nextEvent
.
public void nextEvent()
{
if (eventVarString == "Send A Text")
{
setContentView(R.layout.send_text);
}
else if (eventVarString == "Make A Call")
{
setContentView(R.layout.make_call);
}
else if (eventVarString == "Open An App")
{
setContentView(R.layout.open_app);
}
else if (eventVarString == "Send An Email")
{
setContentView(R.layout.send_email);
}
else if (eventVarString == "Go To A Website")
{
setContentView(R.layout.go_to_a_website);
}
}
Вот код, который открывает AlertDialog и устанавливает глобальную переменную.
public void typeOfEvent(View v)
{
final CharSequence[] items = {"Send A Text", "Make A Call", "Open An App", "Send An Email", "Go To A Website"};
AlertDialog.Builder builder = new AlertDialog.Builder(SchedulerActivity.this);
builder.setTitle("Choose An Event");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
eventVarString = items[item];
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
TextView addEventVarText = (TextView) findViewById(R.id.eventChosen);
addEventVarText.setText(eventVarString);
Toast.makeText(SchedulerActivity.this, "Success", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Toast.makeText(SchedulerActivity.this, "Fail", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
}
А вот LogCat, сгенерированный из Force Close, когда я нажимаю кнопку Done.
Pastebin.com