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) {

然后使用该参数启动 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 回答