首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从活动到视图的Android变量

从活动到视图的Android变量
EN

Stack Overflow用户
提问于 2013-12-11 17:07:30
回答 1查看 175关注 0票数 0

我尝试使用活动中的变量进行绘图。当我调用getOff方法时,程序崩溃了。我必须声明对象吗?或者我做错了什么?

这是我的ActivityClass:

代码语言:javascript
复制
public class MyActivity extends Activity { 

PaintViewWZPGrenzwinkel paintviewgrenzwinkel;

public void setPixel(double pix) { 
    double pixel = pix; 
    double oeffnunginradian = 2 * Math.atan((B / 2) * (1 / f)); 
    double oeffnunginwinkel = Math.toDegrees(oeffnunginradian); 
    double oeffnungswinkel = pixel * (a1 / oeffunginwinkel); 
    paintviewgrenzwinkel.getOff(oeffnungswinkel); 
} 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
            paintviewgrenzwinkel = (PaintViewWZPGrenzwinkel) findViewById(R.id.paintViewWZPGrenzwinkel1);

....}

在这里,我获取变量并绘制它。

代码语言:javascript
复制
public class PaintViewWZPGrenzwinkel extends View{

double oeffnungswinkel;
public void getOff(double ow) {
    oeffnungswinkel = ow;
    invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setStyle(Paint.Style.FILL);
    paint.setStrokeWidth(10);
    paint.setColor(Color.WHITE);
    float width = (float) getWidth() / 2;
    float height = (float) getHeight() / 2;
    float oeffnungswinkel1 = (float) (width - ((oeffnungswinkel / 2) + 5));
    float oeffnungswinkel2 = (float) (width + ((oeffnungswinkel / 2) + 5));
    canvas.drawLine(oeffnungswinkel1, height - 100, oeffnungswinkel1, height + 100, paint);
    canvas.drawLine(oeffnungswinkel2, height - 100, oeffnungswinkel2, height + 100, paint);
}

这是我的LogCat:

代码语言:javascript
复制
12-11 10:14:18.382: W/System.err(12939): java.lang.NullPointerException
12-11 10:14:18.382: W/System.err(12939):    at de.fovea.waldinvent.WinkelzaehlprobeActivity.setPixel(WinkelzaehlprobeActivity.java:61)
12-11 10:14:18.382: W/System.err(12939):    at de.fovea.views.CameraViewWZP.updateZoomStatus(CameraViewWZP.java:62)
12-11 10:14:18.382: W/System.err(12939):    at de.fovea.waldinvent.WinkelzaehlprobeActivity$2.onProgressChanged(WinkelzaehlprobeActivity.java:110)
12-11 10:14:18.382: W/System.err(12939):    at android.widget.SeekBar.onProgressRefresh(SeekBar.java:96)
12-11 10:14:18.382: W/System.err(12939):    at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:684)
12-11 10:14:18.382: W/System.err(12939):    at android.widget.ProgressBar.refreshProgress(ProgressBar.java:709)
12-11 10:14:18.382: W/System.err(12939):    at android.widget.ProgressBar.setProgress(ProgressBar.java:799)
12-11 10:14:18.382: W/System.err(12939):    at android.widget.AbsSeekBar.trackTouchEvent(AbsSeekBar.java:655)
12-11 10:14:18.382: W/System.err(12939):    at android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:574)
12-11 10:14:18.382: W/System.err(12939):    at android.view.View.dispatchTouchEvent(View.java:7817)
12-11 10:14:18.382: W/System.err(12939):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
12-11 10:14:18.382: W/System.err(12939):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
12-11 10:14:18.392: W/System.err(12939):    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2326)
12-11 10:14:18.392: W/System.err(12939):    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1612)
12-11 10:14:18.392: W/System.err(12939):    at android.app.Activity.dispatchTouchEvent(Activity.java:2494)
12-11 10:14:18.392: W/System.err(12939):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2274)
12-11 10:14:18.392: W/System.err(12939):    at android.view.View.dispatchPointerEvent(View.java:8025)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4659)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4547)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4148)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4198)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4167)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4252)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4175)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4309)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4148)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4198)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4167)
12-11 10:14:18.392: W/System.err(12939):    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4175)
12-11 10:14:18.402: W/System.err(12939):    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4148)
12-11 10:14:18.402: W/System.err(12939):    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6293)
12-11 10:14:18.402: W/System.err(12939):    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6231)
12-11 10:14:18.402: W/System.err(12939):    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6202)
12-11 10:14:18.402: W/System.err(12939):    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6373)
12-11 10:14:18.402: W/System.err(12939):    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:188)
12-11 10:14:18.402: W/System.err(12939):    at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
12-11 10:14:18.402: W/System.err(12939):    at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:177)
12-11 10:14:18.402: W/System.err(12939):    at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:6346)
12-11 10:14:18.402: W/System.err(12939):    at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:6392)
12-11 10:14:18.402: W/System.err(12939):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791)
12-11 10:14:18.402: W/System.err(12939):    at android.view.Choreographer.doCallbacks(Choreographer.java:591)
12-11 10:14:18.402: W/System.err(12939):    at android.view.Choreographer.doFrame(Choreographer.java:559)
12-11 10:14:18.402: W/System.err(12939):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777)
12-11 10:14:18.402: W/System.err(12939):    at android.os.Handler.handleCallback(Handler.java:730)
12-11 10:14:18.402: W/System.err(12939):    at android.os.Handler.dispatchMessage(Handler.java:92)
12-11 10:14:18.402: W/System.err(12939):    at android.os.Looper.loop(Looper.java:137)
12-11 10:14:18.402: W/System.err(12939):    at android.app.ActivityThread.main(ActivityThread.java:5419)
12-11 10:14:18.402: W/System.err(12939):    at java.lang.reflect.Method.invokeNative(Native Method)
12-11 10:14:18.402: W/System.err(12939):    at java.lang.reflect.Method.invoke(Method.java:525)
12-11 10:14:18.402: W/System.err(12939):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
12-11 10:14:18.402: W/System.err(12939):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
12-11 10:14:18.402: W/System.err(12939):    at dalvik.system.NativeStart.main(Native Method)
EN

回答 1

Stack Overflow用户

发布于 2013-12-11 17:17:42

改变-

代码语言:javascript
复制
paintviewgrenzwinkel = (PaintViewWZPGrenzwinkel) findViewById(R.id.paintViewWZPGrenzwinkel1);

变成-

代码语言:javascript
复制
paintviewgrenzwinkel = (PaintViewGrenzwinkel) findViewById(R.id.paintViewWZPGrenzwinkel1);

希望它现在能正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20514873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档