Изменение макетов при нажатии кнопки в Android - PullRequest
0 голосов
/ 11 ноября 2011

Итак, на данный момент я делаю приложение для 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

1 Ответ

2 голосов
/ 11 ноября 2011

Добавьте параметр View в обработчик событий.

public void nextEvent(View view)
...