- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道这个错误很常见,我也知道我应该像这样添加空构造函数
public MainActivity(){
super("MainActivity");
但在我的例子中,它不会接受字符串作为参数,所以我真的不知道要传递什么...我将向您展示我的代码,该代码取自 Professional Android Development 中的 Reto Meier 示例.
package com.virtualflyer.compass;
import...
public class MainActivity extends View {
public MainActivity(Context context){
super(context);
initCompassView();
}
public MainActivity(Context context, AttributeSet attrs){
super (context, attrs);
initCompassView();
}
public MainActivity(Context context,AttributeSet attrs,int defaultstyle){
super (context, attrs,defaultstyle);
initCompassView();
}
private Paint markerPaint;
private Paint textPaint;
private Paint circlePaint;
private String northString;
private String southString;
private String westString;
private String eastString;
private int textHeight;
protected void initCompassView(){
setFocusable(true);
Resources r=this.getResources();
circlePaint=new Paint (Paint.ANTI_ALIAS_FLAG);
circlePaint.setColor(r.getColor(R.color.background_color));
circlePaint.setStrokeWidth(1);
circlePaint.setStyle(Paint.Style.FILL_AND_STROKE);
northString=r.getString(R.string.cardinal_north);
southString=r.getString(R.string.cardinal_south);
eastString=r.getString(R.string.cardinal_east);
westString=r.getString(R.string.cardinal_west);
textPaint= new Paint (Paint.ANTI_ALIAS_FLAG);
textPaint.setColor(r.getColor(R.color.text_color));
textHeight=(int)textPaint.measureText("yY");
markerPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
markerPaint.setColor(r.getColor(R.color.marker_color));
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int measuredWidth=measure(widthMeasureSpec);
int measuredHeight=measure(heightMeasureSpec);
int d =Math.min(measuredWidth,measuredHeight);
setMeasuredDimension(d,d);
}
private int measure(int measureSpec){
int result=0;
int specMode=MeasureSpec.getMode(measureSpec);
int specSize=MeasureSpec.getSize(measureSpec);
if (specMode==MeasureSpec.UNSPECIFIED){
result=200;
} else {
result=specSize;
}
return result;
}
private float bearing;
public void setBearing (float _bearing){
bearing=_bearing;
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED);
}
public float getBearing(){
return bearing;
}
@Override
public boolean dispatchPopulateAccessibilityEvent(final AccessibilityEvent event){
super.dispatchPopulateAccessibilityEvent(event);
if (isShown()){
String bearingStr= String.valueOf(bearing);
if (bearingStr.length()>AccessibilityEvent.MAX_TEXT_LENGTH)
bearingStr=bearingStr.substring(0,AccessibilityEvent.MAX_TEXT_LENGTH);
event.getText().add(bearingStr);
return true;
}
else{
return false;
}
}
@Override
protected void onDraw(Canvas canvas){
int mMeasuredHeight=getMeasuredHeight();
int mMeasuredWidth=getMeasuredWidth();
int px= mMeasuredWidth/2;
int py=mMeasuredHeight/2;
int radius=Math.min(px,py);
canvas.drawCircle(px,py,radius,circlePaint);
canvas.save();
canvas.rotate(-bearing,px,py);
int textWidth=(int)textPaint.measureText("W");
int cardinalX=px-textWidth/2;
int cardinalY=py-radius+textHeight;
for (int i=0; i<24; i++){
canvas.drawLine(px,py-radius,px,py-radius+10,markerPaint);
canvas.save();
canvas.translate(0,textHeight);
if (i%6==0){
String dirString ="";
switch (i){
case(0) :{
dirString=northString;
int arrowY=2*textHeight;
canvas.drawLine(px,arrowY,px-5,3*textHeight,markerPaint);
break;
}
case(6) :dirString=eastString;break;
case(12) :dirString=southString;break;
case(18) :dirString=westString;break;
}
canvas.drawText(dirString, cardinalX,cardinalY,textPaint);
}
else if (i%3==0){
String angle =String.valueOf(i*15);
float angleTextWidth=textPaint.measureText(angle);
int angleTextX=(int) (px-angleTextWidth/2);
int angleTextY=(int) py-radius+textHeight;
canvas.drawText(angle,angleTextX,angleTextY,textPaint);
}
canvas.restore();
canvas.rotate(15,px,py);
}
canvas.restore();
}
}
最佳答案
我不知道你在做什么,但这可能是问题所在:
为什么将您的类命名为 View an Activity extended?如果您有 MainActivity,您通常希望从 Activity 类扩展它。
问题可能出在这里,您在 list 文件中声明您有一个作为 MainActivity 的 Activity,但实际上并没有,因为您从 View 扩展了它。
这是你要做的:
public class MainActivity extends Activity{ ... }
public class MyView extends View { /*insert your View code from above*/ }
在 MainActivity 中你可以试试
setContentView(new MyView(this));
并且在您声明的 AndroidManifest 中(我猜您在这里有相同的或喜欢它)
<activity
android:name=".MainActivity"
android:label="MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
关于java.lang.InstantiationException : can't instantiate class; no empty constructor 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20225482/
我对这个错误很困惑: Cannot implicitly convert type 'System.Func [c:\Program Files (x86)\Reference Assemblies\
考虑这段代码: pub trait Hello { fn hello(&self); } impl Hello for Any { fn hello(&self) {
问题很简单。是否可以构造这样一个类型 T,对于它下面的两个变量声明会产生不同的结果? T t1 = {}; T t2{}; 我已经研究 cppreference 和标准一个多小时了,我了解以下内容:
Intellij idea 给我这个错误:“Compare (T, T) in Comparator cannot be applied to (T, T)” 对于以下代码: public class
任何人都可以告诉我 : n\t\t\t\t\n\t\t\t 在以下来自和 dwr 服务的响应中的含义和用途是什么. \r\n\t\t\t \r\n\t\t\t
让 T 成为一个 C++ 类。 下面三个指令在行为上有什么区别吗? T a; T a(); T a = T(); T 为不带参数的构造函数提供了显式定义这一事实是否对问题有任何改变? 后续问题:如果
Rust中的智能指针是什么 智能指针(smart pointers)是一类数据结构,是拥有数据所有权和额外功能的指针。是指针的进一步发展 指针(pointer)是一个包含内存地
比如我有一个 vector vector > v={{true,1},{true,2},{false,3},{false,4},{false,5},{true,6},{false,7},{true,8
我有一个来自 .xls 电子表格的数据框,我打印了 print(df.columns.values) 列,输出包含一个名为:Poll Responses\n\t\t\t\t\t。 我查看了 Excel
This question already has answers here: What are good reasons for choosing invariance in an API like
指针类型作为类型前缀与在类型前加斜杠作为后缀有什么区别。斜线到底是什么意思? 最佳答案 语法 T/~ 和 T/& 基本上已被弃用(我什至不确定编译器是否仍然接受它)。在向新向量方案过渡的初始阶段,[T
我正在尝试找到一种方法来获取模板参数的基类。 考虑以下类: template class Foo { public: Foo(){}; ~Foo(){};
这是一个让我感到困惑的小问题。我不知道如何描述它,所以只看下面的代码: struct B { B() {} B(B&) { std::cout ::value #include
为什么有 T::T(T&) 而 T::T(const T&) 更适合 copy ? (大概是用来实现move语义的???) 原始描述(被melpomene证明是错误的): 在C++11中,支持了一种新
在 Java 7 中使用 eclipse 4.2 并尝试实现 List 接口(interface)的以下方法时,我收到了警告。 public T[] toArray(T[] a) { ret
假设有三个函数: def foo[T](a:T, b:T): T = a def test1 = foo(1, "2") def test2 = foo(List(), ListBuffer()) 虽
我对柯里化(Currying)和非柯里化(Currying)泛型函数之间类型检查的差异有点困惑: scala> def x[T](a: T, b: T) = (a == b) x: [T](a: T,
考虑一个类A,我如何编写一个具有与相同行为的模板 A& pretty(A& x) { /* make x pretty */ return x; } A pretty(A&& x) {
Eclipse 表示由于泛型类型橡皮擦,类型参数不允许使用 instanceof 操作。 我同意在运行时不会保留任何类型信息。但是请考虑以下类的通用声明: class SomeClass{ T
在 C++14 中: 对于任何整数或枚举类型 T 以及对于任何表达式 expr: 有没有区别: struct S { T t { expr }; }; 和 struct S { T t = { exp
我是一名优秀的程序员,十分优秀!