アニメーションなどのスピードインジケーターを提供するAndroidプロジェクト用の.aarライブラリーを実装しました。ライブラリは "SpeedometerView-1.0.1.aar"と呼ばれていますAndroidでインターフェースをインスタンス化できません。 "匿名"エラー
すべてがうまく動作し、その仕事をします。しかし、スピードメーターのラベルを実装しようとしています。私はこのライブラリで見つかったドキュメントを使用しました。一つの基本的な例が、ここで発見された:
https://github.com/ntoskrnl/AndroidWidgets
ここではチュートリアルの例ではコードです:
使用
は、プロジェクトにライブラリをインポートします。示すように、レイアウトのXMLファイルで
はSpeedometerGaugeを追加します。
<com.cardiomood.android.controls.gauge.SpeedometerGauge
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="8dp"
android:id="@+id/speedometer" />
設定SpeedometerGaugeを:
private SpeedometerGauge speedometer;
// Customize SpeedometerGauge
speedometer = (SpeedometerGauge) v.findViewById(R.id.speedometer);
// Add label converter
speedometer.setLabelConverter(new SpeedometerView.LabelConverter() {
@Override
public String getLabelFor(double progress, double maxProgress) {
return String.valueOf((int) Math.round(progress));
}
});
// configure value range and ticks
speedometer.setMaxSpeed(300);
speedometer.setMajorTickStep(30);
speedometer.setMinorTicks(2);
// Configure value range colors
speedometer.addColoredRange(30, 140, Color.GREEN);
speedometer.addColoredRange(140, 180, Color.YELLOW);
speedometer.addColoredRange(180, 400, Color.RED);
私の問題は、 "追加ラベルコンバーター" です。
私は私のコードでは、私はこのエラーを取得することを使用しよう:ここ
setLabelConverter (com.cardiomood.android.controls.gauge.SpeedometerGauge.LabelConverter) in SpeedometerGauge cannot be applied to (anonymous com.cardiomood.android.speedometer.SpeedometerView.LabelConverter)
は私の関連するコードは次のように見える方法は次のとおりです。もう一度
private void setCoolingIndicatorAttributes() {
coolingIndicator.setMaxSpeed(250);
coolingIndicator.setMajorTickStep(50);
coolingIndicator.setMinorTicks(3);
coolingIndicator.addColoredRange(0, 140, Color.GREEN);
coolingIndicator.addColoredRange(140, 200, Color.YELLOW);
coolingIndicator.addColoredRange(200, 250, Color.RED);
// Add label converter
coolingIndicator.setLabelConverter(new SpeedometerView.LabelConverter() {
@Override
public String getLabelFor(double progress, double maxProgress) {
return String.valueOf((int) Math.round(progress));
}
});
}
、この^^^はしていません作業。あなたが見ることができるように
setLabelConverter (com.cardiomood.android.controls.gauge.SpeedometerGauge.LabelConverter) in SpeedometerGauge cannot be applied to (anonymous com.cardiomood.android.speedometer.SpeedometerView.LabelConverter)
、唯一の違いは、パッケージ名とクラスの前にある単語「匿名」である:私は私が説明したエラーを取得します。
これを解決するためにかなりのアプローチを試みましたが、失敗しました。何らかの理由で私を逃れるために、これを解決するための非常に簡単な方法があります。私は入力を感謝します。
ありがとうございます!
編集:私は、私はこれを解決したと思う:
私はこの問題を解決するために管理を考える:名前がSpeedometerGauge、ないSpeedometerViewでなければなりません。
だから、正しいコードは次のとおりです。
// Add label converter
coolingIndicator.setLabelConverter(new SpeedometerGauge.LabelConverter() {
@Override
public String getLabelFor(double progress, double maxProgress) {
return String.valueOf((int) Math.round(progress));
}
});
}
'の唯一の違い「匿名」という言葉です。いいえ、違いはパッケージ名にもあります: 'SpeedometerGauge'対' SpeedometerView' – 0xDEADC0DE