2011-09-22 3 views
0

누구나 왜 이것이 작동하지 않는지 알 수 있습니까? 주요 활동의에 있지 수단 startActivity(i);Android 새로운 의도 문제; startActivity();

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

'작동하지 않음'을 정의 할 수 있습니까? 무엇이 잘못되었는지를 모른 채 도움을 받기가 어렵습니다. –

+0

오류가 발생했거나 전혀 조치를 취하지 않았습니다. –

+0

Eclipse에서 빌드 할 때이 오류가 표시됩니다. Create Method 'startActivity (intent)'... – xDragonZ

답변

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

     } 
+0

고마워! 마침내 일하고 .. – xDragonZ

2

작업 작동 시도 class then 시도해보십시오. 당신 작동하지 않는 코드 ..

activity.startActivity(i); 
+0

고마워요! 나는 이것을 해결하려고 노력하는 데 몇 시간을 보내고, 나는 이것을 생각하지 않았다. – xDragonZ