Определение целевого действия для кнопки - PullRequest
0 голосов
/ 12 марта 2012

Я нашел этот код очень полезным для перехода от одного действия к другому, но проблема в том, что я не вижу, где упоминается место назначения. Я был бы очень признателен, если бы кто-то указал, как изменить пункт назначения.

Вот код:

Button getTaxi = (Button) findViewById(R.id.GetTaxi);
    getTaxi.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View view) {
            final Intent intent = new Intent();
            setResult(RESULT_OK, intent);
            finish();
        }
    });

Соответствующая часть в xml:

<Button
    android:id="@+id/GetTaxi"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:text="GetTaxi" >
</Button>

Заранее большое спасибо!

Ответы [ 2 ]

1 голос
/ 12 марта 2012

На самом деле, код, который выполняется по щелчку Button, утверждает, что ваш Activity (который, кстати, является второстепенным действием) выполнил свою работу и теперь заканчивается кодом результата RESULT_OK. Это означает, что был другой Activity, который запустил этот фактический Activity для какого-то результата. Итак, когда вы нажмете Button, ваш Activity закончится. Чтобы запустить еще один Activity по щелчку Button, вы должны создать Intent, явно указав Activity, который вы хотите запустить, или просто действие, которое вы хотите выполнить над некоторыми данными, позволяя Android разрешить Финал Activity для вас. Затем вы должны позвонить startActivity(), передав Intent, который вы создали. Надеюсь, это поможет.

0 голосов
/ 12 марта 2012

Вы можете использовать что-то вроде этого:

Button getTaxi = (Button) findViewById(R.id.GetTaxi);
getTaxi.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(final View view) {
        Intent intent = new Intent();
        intent.setClass(this, GetTaxiActivity.class);
        startActivity(intent);
      //call finish() if the current activity is something like a loading page
    }
});

Часть кода, которую вы упомянули выше, является подзадачей, которая вызывается с помощью StartActivityForResult (); * +1004 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...