Message contextuel d'Android Eclipse avec bouton

Je voudrais le faire ainsi, en cliquant sur un bouton, il y a un message contextuel.

En ce moment, le popup vient dès que j'ouvre l'application.

  • Changez le coin du rayon de manière programmable par programme
  • Android - Comment modifier dynamiquement le texte de l'élément de menu en dehors de OnOptionsItemsSelectionné ou onCreateOptionsMenu
  • "La méthode setListAdapter (ArrayAdapter) est indéfinie pour le type create"
  • Création de Hashmap à partir d'une chaîne JSON
  • OkHttp dans Android pour faire des demandes de réseau
  • Comment obtenir les noms de fichiers stockés dans la carte sd dans Android
  • BTW le bouton que je veux déclencher le popup est le bouton about dans main.xml

    Voici mon main.xml (avec la mise en page):

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#3DE400" android:orientation="vertical" > <!-- background originally #d78a00 --> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="60dp" android:fontFamily="sans-serif-condensed" android:paddingLeft="10dp" android:text="Sample App" android:textColor="#FFF" android:textSize="60sp" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-condensed" android:paddingLeft="10dp" android:text="@string/creator" android:textColor="#FFF" android:textSize="20dp" /> <Button android:id="@+id/about" android:layout_width="123dp" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:background="@android:color/transparent" android:fontFamily="sans-serif-condensed" android:gravity="left" android:paddingLeft="10dp" android:text="@string/about" android:textColor="#FFF" android:textSize="40dp" android:onClick="show" /> </LinearLayout> 

    Voici mon MainActivity.java:

     package com.pranavsanghvi.sampleappv4; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.view.Menu; import android.widget.Toast; import android.content.DialogInterface; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); alert.setTitle("About"); alert.setMessage("Sample About"); alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick (DialogInterface dialog, int id) { Toast.makeText (MainActivity.this, "Success", Toast.LENGTH_SHORT) .show(); } }); alert.setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Toast.makeText(MainActivity.this, "Fail", Toast.LENGTH_SHORT) .show(); } }); alert.show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 

    2 Solutions collect form web for “Message contextuel d'Android Eclipse avec bouton”

    D'abord, déclarez votre alerte et votre bouton dans MainActivity:

     public class Mainactivity extends Activity { private AlertDialog.Builder alert; private Button btAbout; //rest of the code } 

    Ensuite, dans onCreate (), créez votre alerte comme vous l'avez fait, sauf cette ligne:

     alert.show(); // <--- remove this line as not to show the alert immediately 

    Parce que vous avez déclaré une alerte globale, n'oubliez pas d'enlever AlertDialog.Builder ici, alors au lieu de:

     AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); alert.setTitle("About"); //rest of the code 

    tu aurais dû:

     alert = new AlertDialog.Builder(MainActivity.this); alert.setTitle("About"); //rest of the code 

    Ensuite, accédez à votre bouton about:

     btAbout = (Button) findViewById(R.id.about); 

    Réglez le bouton OnClickListener sur:

     btAbout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //when this button is clicked, show the alert alert.show(); } }); 

    Tout cela se trouve dans onCreate (). Maintenant, lorsque le bouton est cliqué, votre alerte s'affiche.

    Si vous souhaitez afficher le menu contextuel sur le bouton, cliquez sur Ajouter ce qui suit dans onCreate()

     Button aboutButton = (Button) findViewById(R.id.about); aboutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { alert.show(); } }); 

    Il suffit de supprimer alert.show(); De onCreate ();

    mettre à jour :-

    Êtes-vous alerte ne peut pas être résolu ? Si c'est le cas, soit faites l'alerte au niveau global, soit déclarez-le à l'extérieur onCreate()

     public class MainActivity extends Activity { AlertDialog.Builder alert; @Override protected void onCreate(Bundle savedInstanceState) { // code alert = new AlertDialog.Builder(MainActivity.this); // code 

    Ou le rendre définitif de sorte qu'il soit

     final AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); 

    Supprimez également alert.show(); onCreate(); trouve dans onCreate();

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.