0

なぜこれがうまくいかないのか、誰にも分かりますか?のstartActivity(i);

動作しない

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

しかし、私はこれがうまくいくことを試みます

働く

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

2 に答える 2

2

上記のコードが別のクラスにある場合は、メインアクティビティのクラスにないことを意味し、動作していないコードでこれを試してください..

activity.startActivity(i);
于 2011-09-22T06:51:15.477 に答える
1

関数がfinal引数を取るようにします。

public static void showAboutDialog(final Activity activity) {

次に、その引数を使用してアクティビティを開始します (静的関数は非静的インスタンス メソッドにアクセスできません。

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

        }
于 2011-09-22T06:52:37.893 に答える