gpt4 book ai didi

java - 重写父类(super class)继承的方法

转载 作者:行者123 更新时间:2023-12-01 12:46:22 24 4
gpt4 key购买 nike

我正在扩展 ListView 类,以便可以将下拉项中的某些文本设为粗体。我试图重写 addView 方法,以便我可以在添加 View 之前更改文本。我收到一条错误消息“方法不会覆盖其父类(super class)中的方法”。 addView继承自ViewGroup类。

public class EditableListView extends ListView {

public EditableListView(Context context){
super(context);
}
public EditableListView(Context context, AttributeSet attrs){
super(context, attrs);
}
public EditableListView(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
}


@Override
public void addView(View child, int index, LayoutParams params) {
final SpannableStringBuilder builder = new SpannableStringBuilder(((CheckedTextView)child).getText().toString());
final StyleSpan bold = new StyleSpan(android.graphics.Typeface.BOLD);
builder.setSpan(bold, 10, 21, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
builder.setSpan(bold, 36, 37, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
((CheckedTextView)child).setText(builder);
super.addView(child, index, params);

}
}

最佳答案

在 android api 中,它表示该方法不受支持,并在调用时抛出异常。

http://developer.android.com/reference/android/widget/ListView.html

我不熟悉使用 ListView ,所以我这里可能有问题。我看到 ViewGroup 的 addView 方法是有效的,但由于 ListView 是一个距离 addView 抛出异常的子级很远的子级,所以我认为正在发生的事情是它重写了直接在其之上的父方法,在本例中为 AbsListView,并发现该方法不受支持,因此抛出异常。

有关发生这种情况的原因的解释:Why is super.super.method(); not allowed in Java?

关于java - 重写父类(super class)继承的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com