Как упражнение Я пытаюсь реализовать вертикальный SeekBar, расширяя AbsSeekBar. Я пытаюсь переопределить несколько методов, чтобы учесть новое позиционирование большого пальца, однако некоторые методы не распознаются, даже если они являются методами AbsSeekBar. Кроме того, когда я пытаюсь использовать переменные класса, определенные в суперклассе AbsSeekBar, они также не распознаются (эти переменные также не распознаются при использовании в AbsSeekBar, но по какой-то причине это не имеет значения). Что мне здесь не хватает?Android: Наследование виджета «Невозможно разрешить метод»
Я использую Android Studio 2.1 Preview 5. Вот код вплоть до одного из методов, который не неоспоримым признаваемых (когда завис над, он говорит: «Не удается разрешить метод„onStartTrackingTouch()“»
package com.example.user.testfour;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.AbsSeekBar;
import android.widget.SeekBar;
public class VerticalSeekBar extends AbsSeekBar {
public interface OnSeekBarChangeListener {
void onProgressChanged(VerticalSeekBar seekBar, int progress, boolean fromUser);
void onStartTrackingTouch(VerticalSeekBar seekBar);
void onStopTrackingTouch(VerticalSeekBar seekBar);
}
private OnSeekBarChangeListener mOnSeekBarChangeListener;
// Constructors
public VerticalSeekBar(Context context) {this(context, null);}
public VerticalSeekBar(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.seekBarStyle);
}
public VerticalSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
this(context, attrs, defStyleAttr, 0);
}
@Override
void onStartTrackingTouch() {
super.onStartTrackingTouch();
if (mOnSeekBarChangeListener != null) {
mOnSeekBarChangeListener.onStartTrackingTouch(this);
}
}
...
}
Edit: Вот некоторый код AbsSeekBar:.
package android.widget;
import android.annotation.Nullable;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Insets;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.Region.Op;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
import android.view.accessibility.AccessibilityNodeInfo;
import com.android.internal.R;
public abstract class AbsSeekBar extends ProgressBar {
// Lots of methods
...
void onStartTrackingTouch() {
mIsDragging = true;
}
...
}
SeekBar класс, который является частью предопределенных виджетов также распространяется AbsSeekBar и использует тот же самый код для переопределения метода onStartTrackingTouch() Там, @Override - als o отмечен как ошибка, но он компилируется без каких-либо проблем. Когда я пытаюсь в основном копировать код SeekBar, он не работает. Может ли эта ошибка быть связана с Android Studio или я пропущу что-то элементарное здесь?
и код 'AbsSeekBar'? :) – mithrop
Предоставлен некоторый код. –