Question

J'ai un curseur qui peut être tiré vers le haut puis il montre une carte. Je peux déplacer le curseur vers le haut et vers le bas pour masquer ou afficher la carte. Lorsque la carte est à l'avant, je peux gérer les événements tactiles sur cette carte. Chaque fois que je touche, un AsyncTask est tiré au, il télécharge des données et fait un Toast qui affiche les données. Bien que je commence la tâche sur événement touche pas de pain grillé est affiché, pas jusqu'à ce que je ferme le curseur. Lorsque le curseur est fermé et la carte ne s'affiche plus les affiche de Toast.

Toutes les idées?

Eh bien démarrer la tâche

EDIT:

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

et onPostExecute un toast

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

Dans la nouvelle TestTask(this), ceci est une référence à MapOverlay et non à MapActivity, cela a donc été le problème.

Était-ce utile?

La solution

Pour afficher Toast dans votre application, essayez ceci:

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

Un autre exemple:

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

On peut définir deux constantes pour la durée:

  

int LENGTH_LONG Afficher la vue ou la notification de texte pour une longue période   du temps.

     

int LENGTH_SHORT Afficher la vue ou la notification de texte pour une courte période   du temps.

Personnalisation de votre pain grillé

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();

Autres conseils

L'extension des activités en utilisant baseadapter utilisé cette

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

ou si vous utilisez l'activité ou mainactivity

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

Syntaxe

Toast.makeText(context, text, duration);

Paramètre Valeur

contexte

  

getApplicationContext() -. Retourne le contexte de toutes les activités en cours d'exécution dans l'application

     

getBaseContext() -. Si vous voulez contexte d'accès d'un autre contexte dans l'application, vous pouvez accéder à

     

getContext() -. Retourne la vue contexte que l'activité de fonctionnement courant

text

  

text -. Retour "Chaîne", sinon la chaîne vous pouvez utiliser transtypage

 (string)num   // type caste

Durée

  

Toast.LENGTH_SHORT - Toast retard prédéfini 2000 ms

     

Toast.LENGTH_LONG - retard Toast 3500 ms prédéfinie

     

milisecond - utilisateur à retard Toast définis millisecondes (. Par exemple 4000)


exemple1

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

Example.2

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

Toaster dans Android

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

ou

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

(LENGTH_SHORT et LENGTH_LONG agissent comme des drapeaux booléens - ce qui signifie que vous cant envoyé des toasts à minuterie miliseconds, mais vous devez utiliser l'une de ces 2 options)

Vous pouvez personnaliser votre 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();

Ou façon générale:

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

J'ai essayé plusieurs toasts et pour ceux qui leur pain donne les essayer d'erreur

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

Il y a deux façons de le faire.

Soit utiliser le message de Toast intégré

//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();

ou faire une personnalisée en fournissant le fichier de mise en page personnalisée

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

Je couru à travers les réponses ici, et a été attirée par le fait qu'il semble être quelqu'un farfouillé, estimant que le contexte d'activité est nécessaire. Ce n'est pas le cas. Cependant, il est une exigence qu'un Toast est affiché à partir de l'événement principal ou l'interface utilisateur de cette discussion. Donc, pour que cela fonctionne en dehors d'un contexte d'activité est un peu délicat. Voici un exemple qui fonctionnerait à l'intérieur d'un service système ou une classe potentielle qui, finalement, hérite de 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();
            }
        });
    }
}

Notez que nous ne consultons pas besoin d'une instance de Activity pour que cela fonctionne. S'il vous plaît arrêter ce qui suggère que c'est le cas! Si Activity était nécessaire, la signature de la méthode ne serait pas appel à un Context.

Si ce fragment de,

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

au lieu d'utiliser "app.getBaseContext ()".

Vous pouvez essayer d'utiliser " getApplicationContext () " ou " getContext () ".

Si votre code est en activité, alors vous devriez utiliser « cette » de « Activty.this ».
Si votre code est en fragment alors vous devriez aller pour « getActivity () »

Pour afficher Toast utiliser le code suivant:

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**

Simple Way

toast("Your Message")

ou

toast(R.string.some_message)

Il suffit d'ajouter deux méthodes dans votre BaseActivity. Ou créer un nouveau BaseActivity si vous n'êtes pas déjà utilisé.

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();
    }
}

et étendre toutes vos activités par BaseActivity.

public class MainActivity extends BaseActivity

Simplest chemin! (À afficher dans votre activité principale, remplacer Premier argument pour une autre activité)

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

Cela a fonctionné pour moi:

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

Si vous voulez écrire un toast simple dans votre activité: Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

1.Showing TextView dans Toast: ---

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

2.Showing image comme Toast: -

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();

Mise en page en 3.showing Toast: -

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();

** Si vous voulez écrire le pain grillé dans votre Async alors: private Activity activity; private android.content.Context context; this.activity = activity; this.context = context; Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();

Afficher Toast de service

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();
            }
        });
    }
    //....
}

Vous pouvez aussi mettre méthode showToast dans votre classe d'application, et de montrer des toasts de partout.

Voici un autre:

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 est:

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

& strings.xml:

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

devez lire: Android Toast Exemple

Syntaxe

Toast.makeText(context, text, duration);

Vous pouvez utiliser getApplicationContext () ou getActivity () ou MainActivity.this (si le nom Activité est MainActivity)

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

ou

Toast.makeText(MainActivity.this,"Hi I am Toast", Toast.LENGTH_LONG).show();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top