2015-07-01 127 views
-1

请告诉我我的代码有什么问题? .setPositiveButton方法抛出了红线错误。它无法读取smsText。我试图宣布smsText公开,但问题是一样的。无法解决方法错误

public class PrepaidSMSBase extends Activity { 

private String smsNumber = ""; 
private String smsPackageName; 
private String smsPrice; 
private String smsTitle; 
private String smsText; 


public PrepaidSMSBase(){} 

public void setSmsPackageInformation(String smsTitle, String smsPackageName, String smsPrice, String smsNumber, String smsText) 
{ 
    this.smsTitle = smsTitle; 
    this.smsPackageName = smsPackageName; 
    this.smsPrice = smsPrice; 
    this.smsNumber = smsNumber; 
    this.smsText = smsText; 

} 

public void activeSMSPackage() 
{ 
    try 
    { 
     AlertDialog.Builder builder = new AlertDialog.Builder(PrepaidSMSBase.this); 
     builder.setTitle(smsTitle); 
     builder.setMessage("Are you sure you want to active" + PrepaidSMSBase.this.smsPackageName + "in RS: " + 
       PrepaidSMSBase.this.smsPrice); 
     builder.setPositiveButton(new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       Uri uri = Uri.parse("smsto:" + smsNumber); 
       Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 
       intent.putExtra("sms_body", smsText); 
       startActivity(intent); 
       Toast.makeText(getApplicationContext(), "Please click send button to activate desire Package", Toast.LENGTH_LONG).show(); 
      } 
     }); 
    }catch (ActivityNotFoundException e){ 
     e.printStackTrace(); 
    } 
} 

}

+0

进口所需的所有类。 OnClickListener()应该是父级DialogInterface。还导入DialogInterface – EagleEye

+0

问题仍然exixt –

+0

什么是“reline”的错误描述? – EagleEye

回答

0

没有setPositiveButton只有一个参数。正如你可以在文档中看到有两种方法setPositiveButton都是具有两个参数:

public AlertDialog.Builder setPositiveButton (int textId, DialogInterface.OnClickListener listener)

public AlertDialog.Builder setPositiveButton (CharSequence text, DialogInterface.OnClickListener listener)

改变这样的代码:

AlertDialog.Builder builder = new AlertDialog.Builder(PrepaidSMSBase.this); 
builder.setTitle(smsTitle); 
builder.setMessage("Are you sure you want to active" + PrepaidSMSBase.this.smsPackageName + "in RS: " + 
     PrepaidSMSBase.this.smsPrice); 
builder.setPositiveButton("Button text", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     Uri uri = Uri.parse("smsto:" + smsNumber); 
     Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 
     intent.putExtra("sms_body", smsText); 
     startActivity(intent); 
     Toast.makeText(getApplicationContext(), "Please click send button to activate desire Package", Toast.LENGTH_LONG).show(); 
    } 
});