无法解决方法错误

时间:2015-07-01 13:36:38

标签: android onclicklistener

请告诉我我的代码有什么问题? .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();
    }
}

}

1 个答案:

答案 0 :(得分: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();
    }
});