Android-тост, чтобы показать на предыдущей деятельности - PullRequest
3 голосов
/ 29 ноября 2011

в моем приложении для Android есть кнопка, которая приводит к активности, которая в некоторых случаях не запускается из-за оператора if.

Что происходит, я уничтожаю активность с помощью .finish(); на onCreate, поэтому ничего не происходит, когда пользователь нажимает кнопку.

Но я хотел бы отобразить предупреждение, тост, для пользователя о текущей деятельности. Не уверен, что это действительно ясно, но вот что в основном должно произойти:

  • Пользователь на главной странице
  • Пользователь нажимает кнопку, чтобы перейти к следующему действию
  • Ничего не происходит, потому что действие прекращается с .finish(); на onCreate.
  • Здесь тост-уведомление должно отображаться на домашней странице после того, как пользователь нажал кнопку

Вот мой код:

try {
        this.storeMarkerList = new StoreMarkerList(this.mapView);
        StoreList list = (StoreList)getBaseApplication().getSessionParameter("selected.storelist", null);
        if (list == null || list.size() == 0){
            Toast.makeText(???, "No stores", 5000);
            this.finish();  
        }
        else {

(...)

Ответы [ 4 ]

13 голосов
/ 29 ноября 2011

Попробуйте это:

Toast.makeText(getApplicationContext(), "No stores", 5000).show();
3 голосов
/ 29 ноября 2011

Вам не хватает неуловимого #show() звонка после Toast.makeText().

if (list == null || list.size() == 0){
    Toast.makeText(this, "No stores", 5000).show();
    this.finish();  
}
2 голосов
/ 23 января 2013

Если вы внутри фрагмента, вы можете оставить ссылку на метод applicationContext - getActivity().

Context context = getActivity().getApplicationContext(); // Inside a fragment

Toast.makeText(context, context.getResources().getString(R.string.no_content), Toast.LENGTH_SHORT).show();

getActivity().finish();
1 голос
/ 29 ноября 2011

Тостовые сообщения сохраняются между Activity с, поэтому все, что вам нужно сделать, это:

@Override
onPause()
{
    Toast.makeToast("My text", Toast.length_long).show();
    super.onPause();
}

Что-то в этом роде, хотя имена моих переменных могут немного отличаться, поскольку я делаю этос макушки головы:)

...