错误:此类应提供默认构造函数

时间:2017-05-09 18:15:20

标签: java android class dialog super

我尝试生成一个已签名的APK但会出现此错误:

  

错误:错误:此类应提供默认构造函数(public   没有参数的构造函数)   (com.penta.games.mrpolitik.SpendenDialog)[Instantiatable]

这是我的对话文件

package com.penta.games.mrpolitik;

import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;

public class SpendenDialog extends Dialog implements
        android.view.View.OnClickListener {

    private Activity c;
    private Button yes, no;

    public SpendenDialog(Activity a) {
        super(a);
        this.c = a;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.spenden_dialog);
        yes = (Button) findViewById(R.id.btn_yes);
        no = (Button) findViewById(R.id.btn_no);
        yes.setOnClickListener(this);
        no.setOnClickListener(this);
    }



    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_yes:
                Uri uri = Uri.parse("https://patreon.com/user?u=5716519&utm_medium=social&utm_source=twitter&utm_campaign=creatorshare2");
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                c.startActivity(intent);
                break;
        }
        switch (v.getId()) {
            case R.id.btn_no:
                break;
        }
        dismiss();
    }



} 

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

  

如何解决此错误?

步骤1:删除构造函数

第2步:删除c字段

步骤3:将c的所有以前的引用替换为getContext()