2011-09-22 5 views
0

Quelqu'un a une idée de pourquoi cela ne fonctionne pas? le startActivity(i);Android Nouveau problème d'intention; startActivity();

ne fonctionne pas

public class UiHelper { 

/** 
* About Dialog 
*/ 
public static void showAboutDialog(Activity activity) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(activity); 
    builder.setTitle(R.string.about_title); 

    // build view from layout 
    LayoutInflater factory = LayoutInflater.from(activity); 
    final View dialogView = factory.inflate(R.layout.about_dialog, null); 

    TextView versionText = (TextView) dialogView.findViewById(R.id.about_version); 
    versionText.setText(activity.getString(R.string.about_version) + " " + getVersion(activity)); 

    builder.setView(dialogView); 

    builder.setIcon(android.R.drawable.ic_dialog_info); 
    /** builder.setNeutralButton(activity.getString(R.string.button_close), 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        dialog.dismiss(); 
       } 
      });**/ 

    builder.setPositiveButton("Facebook", 
    new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
       String url = "http://www.facebook.com/page/"; 
       final Intent i = new Intent(Intent.ACTION_VIEW); 
       i.setData(Uri.parse(url)); 
       startActivity(i); /** <<-- Error <<--**/ 

     } 


    }); 


    builder.setNegativeButton("Website", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 

        String url = "http://www.website.com/"; 
        Intent i = new Intent(Intent.ACTION_VIEW); 
        i.setData(Uri.parse(url)); 
        startActivity(i); 
       } 

      }); 
    AlertDialog question = builder.create(); 
    question.show(); 
} 

mais j'essayer cette volonté fonctionne

travail

AlertDialog.Builder alert = new AlertDialog.Builder(PTRmainActivity.this); 
     alert.setTitle("About"); 
     alert.setMessage("Version 1.0.0"); 
     alert.setIcon(R.drawable.icon); 
     alert.setPositiveButton("Facebook", 
     new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 

       String url = "http://www.facebook.com/page/"; 
       Intent i = new Intent(Intent.ACTION_VIEW); 
       i.setData(Uri.parse(url)); 
       startActivity(i); 

      } 
     }); 

     alert.setNegativeButton("Website", 
     new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 

       String url = "http://www.website.com/"; 
       Intent i = new Intent(Intent.ACTION_VIEW); 
       i.setData(Uri.parse(url)); 
       startActivity(i); 
      } 
     }); 

     alert.show(); 
+1

Pouvez-vous définir ce que 'ne fonctionne pas' signifie? Difficile d'aider sans savoir ce qui ne va pas. –

+0

Obtenez-vous une erreur ou il n'effectue aucune action du tout. –

+0

Dans Eclipse il va montrer cette erreur, quand je vais construire: Create Method 'startActivity (intention)' ... – xDragonZ

Répondre

1

Faites la prise de fonction dans un argument final:

public static void showAboutDialog(final Activity activity) { 

puis utiliser cet argument pour démarrer l'activité (fonctions statiques n'ont pas accès à des non méthodes d'instance statiques:

builder.setPositiveButton("Facebook", 
    new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
       String url = "http://www.facebook.com/page/"; 
       final Intent i = new Intent(Intent.ACTION_VIEW); 
       i.setData(Uri.parse(url)); 
       activity.startActivity(i); /** <<-- Error <<--**/ 

     } 
+0

Merci! travaille enfin maintenant .. – xDragonZ

2

si vous code ci-dessus est sur différentes classes signifie ne pas l'activité principale de class then essayez celui-ci dans votre code de travail non ..

activity.startActivity(i); 
+0

Merci! Je passe quelques heures à essayer de résoudre ce problème, je n'ai pas pensé à ça .. – xDragonZ

Questions connexes