Java ClickableSpan-类不是抽象的,并且不重写抽象方法

Java ClickableSpan-类不是抽象的,并且不重写抽象方法,java,android,Java,Android,我是Android开发的新手。自从我尝试添加打开弹出窗口的选项(onClick())以来,我一直遇到这个错误 看起来错误出现在第29->36行,因为我在注释掉该部分后不会得到这个错误 有人知道发生了什么吗 我的代码: import android.content.Intent; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; impo

我是Android开发的新手。自从我尝试添加打开弹出窗口的选项(onClick())以来,我一直遇到这个错误

看起来错误出现在第29->36行,因为我在注释掉该部分后不会得到这个错误

有人知道发生了什么吗

我的代码:

import android.content.Intent;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;


public class Login extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        TextView textView = findViewById(R.id.PrivacyPolicyConfirmation);

        String text = "I hereby confirm to have read and understood the Privacy Policy";

        SpannableString checkBoxSS = new SpannableString(text);

        ClickableSpan clickableSpanPrivacyPolicy = new ClickableSpan() {
            @Override
            public void updateDrawState(TextPaint ds) {
                super.updateDrawState(ds);
                ds.setColor(Color.BLUE);
                ds.setUnderlineText(true);
            }
        };

        checkBoxSS.setSpan(clickableSpanPrivacyPolicy, 49, 63, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        textView.setHighlightColor(Color.TRANSPARENT);
        textView.setText(checkBoxSS);
        textView.setMovementMethod(LinkMovementMethod.getInstance());

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(Login.this, PopUpPrivacy.class));
            }
        });

    }
}

您的匿名
ClickableSpan
类必须实现
onClick(View-View)
或声明为抽象:

ClickableSpan clickableSpanPrivacyPolicy = new ClickableSpan() {
    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setColor(Color.BLUE);
        ds.setUnderlineText(true);
    }
    @Override
    public void onClick(View v){ }
};
该类是一个抽象类,这意味着某些方法已经定义但尚未实现。在您的例子中,您没有实现抽象方法,这就是为什么会出现错误。因此,您需要像这样声明
onClick()
方法:

ClickableSpan clickableSpanPrivacyPolicy = new ClickableSpan() {
    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setColor(Color.BLUE);
        ds.setUnderlineText(true);
    }

    @Override
    public void onClick(View widget) {
        // Do something
    }
};

第29行是
可点击span
块吗?