android - 使用 getXOffset 和 getYOffset 时出现 MPAndroidChart 错误“方法不会从其超类覆盖”
问题描述
我正在使用 MPAndroid Chart,这是我在 AndroidStudio 和 Im Electronics Engineer 上的第一个应用程序
我根据这个链接做了我的代码:https ://github.com/PhilJay/MPAndroidChart/wiki/MarkerView
我得到一个错误:错误:方法没有覆盖或实现超类型的方法
我不知道为什么不能覆盖
我尝试了一切,搜索了网络,但我找不到任何解决方案
这是 MyMarker.java 类
package com.example.programsql;
import android.content.Context;
import android.graphics.Canvas;
import android.widget.TextView;
import com.github.mikephil.charting.components.MarkerView;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.highlight.Highlight;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class MyMarkerView extends MarkerView {
private TextView tvContent;
private long referenceTimestamp; // minimum timestamp in your data set
private DateFormat mDataFormat;
private Date mDate;
public MyMarkerView (Context context, int layoutResource, long referenceTimestamp) {
super(context, layoutResource);
// this markerview only displays a textview
tvContent = (TextView) findViewById(R.id.tvContent);
this.referenceTimestamp = referenceTimestamp;
this.mDataFormat = new SimpleDateFormat("dd MMM yyyy HH:mm:ss", Locale.ENGLISH);
this.mDate = new Date();
}
// callbacks everytime the MarkerView is redrawn, can be used to update the
// content (user-interface)
@Override
public void refreshContent(Entry e, Highlight highlight) {
long currentTimestamp = (int)e.getX() + referenceTimestamp;
tvContent.setText(e.getY() + " en " + getTimedate(currentTimestamp)); // set the entry-value as the display text
}
@Override <<<<<<<<<<<<<<<< I get error on this
public int getXOffset(float xpos) {
// this will center the marker-view horizontally
return -(getWidth() / 2);
}
@Override <<<<<<<<<<<<<<<< I get error on this too
public int getYOffset(float ypos) {
// this will cause the marker-view to be above the selected value
return -getHeight();
}
private String getTimedate(long timestamp){
try{
mDate.setTime(timestamp*1000);
return mDataFormat.format(mDate);
}
catch(Exception ex){
return "xx";
}
}
}
这发生在最后两个 @override 部分
解决方案
在最新版本(3.1.0)上,有 2 种方法getXOffset()
并getYOffset()
已被getOffset()
. 所以改变你的代码
@Override
public int getXOffset(float xpos) {
// this will center the marker-view horizontally
return -(getWidth() / 2);
}
@Override
public int getYOffset(float ypos) {
// this will cause the marker-view to be above the selected value
return -getHeight();
}
到
@Override
public MPPointF getOffset() {
return new MPPointF(-(getWidth() / 2), -getHeight());
}
推荐阅读
- gradle - 需要在 build.gradle 中写入条件,如果满足它应该从特定的工件下载依赖项
- r - 未定义“逻辑”和“期间”类的算术运算符
- compilation - 编译器设计预处理和编译
- wcf - 启动用于与本机 api 通信的自托管 WCF 服务的快速方法
- jenkins - 如何为JVM分配内存
- azure-container-instances - 在 Azure 容器实例中运行 Linux 容器时出错:无法打开日志文件“/var/log/pods/.../
_0.log" - python - Python 参数无法识别
- azure - 应用服务计划的 Azure 函数应用超时
- jquery - 如何从 jquery serializeArray() 获取嵌套数组值
- python - Python:使用 7 位数字将时间戳字符串解析为日期时间的微秒