Вопрос

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

Любые идеи?

Хорошо начать задачу

РЕДАКТИРОВАТЬ:

public boolean onTouchEvent(MotionEvent event, MapView mapView){ 
    if (event.getAction() == 1) {
        new TestTask(this).execute();
        return true;            
    }else{
        return false;
    }
 }

И в onPostExecute сделать тост

Toast.makeText(app.getBaseContext(),(String)data.result, 
                Toast.LENGTH_SHORT).show();

В новом TestTask(this), это ссылка на MapOverlay И не до MapActivity, так что это была проблема.

Это было полезно?

Решение

Чтобы отобразить Тост В вашем приложении попробуйте это:

Toast.makeText(getActivity(), (String)data.result, 
   Toast.LENGTH_LONG).show();

Другой пример:

Toast.makeText(getActivity(), "This is my Toast message!",
   Toast.LENGTH_LONG).show();

Мы можем определить две константы в течение продолжительности:

int. Length_long Показать уведомление о представлении или текста в течение длительного периода времени.

int. Dize_short. Показать уведомление о представлении или тексте на короткий промежуток времени.

Настройка вашего тоста

LayoutInflater myInflater = LayoutInflater.from(this);
View view = myInflater.inflate(R.layout.your_custom_layout, null);
Toast mytoast = new Toast(this);
mytoast.setView(view);
mytoast.setDuration(Toast.LENGTH_LONG);
mytoast.show();

Другие советы

Расширение активности использования baseadapter использовал это

Toast.makeText(getActivity(), 
    "Your Message", Toast.LENGTH_LONG).show();

или если вы используете деятельность или mainactivity

Toast.makeText(MainActivity.this, 
    "Your Message", Toast.LENGTH_LONG).show();

Синтаксис

Toast.makeText(context, text, duration);

Значение параметра

контекст

getApplicationContext() - Возвращает контекст для всех действий, выполняемых в приложении.

getBaseContext() - Если вы хотите получить доступ к контексту из другого контекста в приложении, вы можете получить доступ.

getContext() - Возвращает представление контекста только текущей рабочей активности.

текст

text - вернуть "строку", если не строка, вы можете использовать тип.

 (string)num   // type caste

продолжительность

Toast.LENGTH_SHORT - Toast Doply 2000 MS Предопределенная

Toast.LENGTH_LONG - тосты задержки 3500 мс предопределено

milisecond - Toast Do Do Do Deal User, определенные Miliseconds (например, 4000)


Пример.1

Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show();

Пример.2

Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();

Для тоста в андроиде

Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show();

или

Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_LONG).show();

(Production_short и Dize_long действуют как логические флаги - что означает, что вы не можете отправить Titast Timer в Miliseconds, но вам нужно использовать любой из этих параметров)

Вы можете настроить свою TOST:

LayoutInflater mInflater=LayoutInflater.from(this);

View view=mInflater.inflate(R.layout.your_layout_file,null);
Toast toast=new Toast(this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();

Или общий способ:

Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();

Я пробовал несколько тостов и за тех, кого их тост дает им ошибку, попробуйте

Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();

Есть два способа сделать это.

Либо используйте встроенное тостовое сообщение

//Toast shown for  short period of time 
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_SHORT).show();

//Toast shown for long period of time
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_LONG).show();

или сделать пользовательский, предоставляя пользовательский файл макета

Toast myToast = new Toast(getApplicationContext());
myToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
myToast.setDuration(Toast.LENGTH_LONG);
myToast.setView(myLayout);
myToast.show();

Я столкнулся здесь с ответами здесь, и меня привлекла тот факт, что, похоже, кто -то ковыряет, полагая, что требуется контекст деятельности. Это не вариант. Тем не менее, это требование, чтобы тост был размещен из основного события или потока пользовательского интерфейса. Таким образом, заставить это работать вне контекста деятельности, немного сложно. Вот пример, который будет работать внутри системной службы или любого потенциального класса, который в конечном итоге наследует от Context.

public class MyService extends AccessibilityService {

    public void postToastMessage(final String message) {
        Handler handler = new Handler(Looper.getMainLooper());

        handler.post(new Runnable() {

            @Override
            public void run() {
                Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
            }
        });
    }
}

Обратите внимание, что нам не нужен доступ к экземпляру Activity для этого для работы. Пожалуйста, перестаньте предположить, что это так! Если Activity требовались, подпись метода не будет вызвать Context.

Если это фрагмент,

Toast.makeText(getActivity(), "this is my Toast message!!! =)",
                   Toast.LENGTH_LONG).show();
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();

вместо использования "app.getbasecontext ()".

Вы можете попробовать использоватьgetapplicationContext ()" или "getcontext ()".

Если ваш код находится в действии, вы должны использовать «это» из «Activty.this».
Если ваш код находится в фрагменте, вам следует пойти на "getActivity ()"

Для отображения тоста используйте следующий код:

Toast toast = new Toast(getApplicationContext());

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

toast.setDuration(Toast.LENGTH_LONG);

toast.show();
 Toast toast=Toast.makeText(getApplicationContext(),"Hello", Toast.LENGTH_SHORT);
 toast.setGravity(Gravity.CENTER, 0, 0); // last two args are X and Y are used for setting position
 toast.setDuration(10000);//you can even use milliseconds to display toast
 toast.show();**//showing the toast is important**

Простой способ

toast("Your Message")

ИЛИ

toast(R.string.some_message)

Просто добавьте два метода в свой BaseActivity. Анкет Или создать новый BaseActivity Если вы еще не используете.

public class BaseActivity extends AppCompatActivity {
    public void toast(String msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }

    public void toast(@StringRes int msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }
}

и продлить всю свою деятельность BaseActivity.

public class MainActivity extends BaseActivity

Самый простой путь! (Чтобы отобразить в своем основном деятельности, замените первый аргумент для других действий)

Button.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
        Toast.makeText(MainActivity.this,"Toast Message",Toast.LENGTH_SHORT).show();
    }
}

Это работало для меня:

Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show();

Если вы хотите написать простой тост в вашей деятельности:Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

1. Действительный текстовый просмотр в тосте: ----

TextView tv = new TextView(this); tv.setText("Hello!"); tv.setTextSize(30); tv.setTextColor(Color.RED); tv.setBackgroundColor(Color.YELLOW);

2. Повышение изображения как тост: -

ImageView iv = new ImageView(this); iv.setImageResource(R.drawable.blonde); Toast t = new Toast(this); t.setView(iv); t.setDuration(Toast.LENGTH_LONG); t.show();

3. Шаг макет как тоста:-

LayoutInflater li = getLayoutInflater(); View view = li.inflate(R.layout.my_toast_layout,null,false); Toast t = new Toast(this); t.setView(view); t.setDuration(Toast.LENGTH_LONG); t.show();

** Если вы хотите написать тост в своем async, то:private Activity activity; private android.content.Context context; this.activity = activity; this.context = context; Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();

Показать тост из сервиса

public class ServiceA extends Service {
    //....
    public void showToast(final String message) {
        Handler handler = new Handler(Looper.getMainLooper());
        handler.post(new Runnable() {

            @Override
            public void run() {
                Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show();
            }
        });
    }
    //....
}

Вы также можете положить showToast Метод в вашем классе приложения и покажите тост из любого места.

Вот еще один:

refreshBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();
            }
        });

Где Toast является:

Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();

& strings.xml:

<string name="refresh_btn_pushed">"Refresh was Clicked..."</string>

enter image description here

Необходимо прочитать: пример Android Toast

Синтаксис

Toast.makeText(context, text, duration);

Ты можешь использовать getapplicationContext () или Гюмажимость () или МАКТИВНОСТЬ. Это(Если название активности - это мрадиционность)

Toast.makeText(getApplicationContext(),"Hi I am toast",Toast.LENGTH_LONG).show();

или

Toast.makeText(MainActivity.this,"Hi I am Toast", Toast.LENGTH_LONG).show();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top