Android 传递从“活动”移动到“类扩展”视图的数据

Android 传递从“活动”移动到“类扩展”视图的数据,android,android-intent,nullpointerexception,Android,Android Intent,Nullpointerexception,我正在尝试将数据从MainActivity传递到我的类VistaJuego,它在屏幕上绘制一个移动的玩偶,但是当它与障碍物碰撞时,游戏停止,并且有意图地应该转到另一个活动。我需要MainActivity的上下文来完成我的意图,但是Eclipse总是显示NullPointerException 我的主要活动 公共类MainActivity扩展了活动{ 相对的;相对的; 静态活性ac @Override protected void onCreate(Bundle savedInstanceStat

我正在尝试将数据从MainActivity传递到我的类VistaJuego,它在屏幕上绘制一个移动的玩偶,但是当它与障碍物碰撞时,游戏停止,并且有意图地应该转到另一个活动。我需要MainActivity的上下文来完成我的意图,但是Eclipse总是显示NullPointerException

我的主要活动 公共类MainActivity扩展了活动{ 相对的;相对的; 静态活性ac

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    vistafaba=(VistaJuego)findViewById(R.id.faba);
    relative=(RelativeLayout)findViewById(R.id.relative);
    ac=this.getActivity();
}
public void goToActivityLosed(){
    Intent i= new Intent(this,ActivityLosed.class);
    startActivity(i);
} 
还有我的维斯塔朱伊戈

 public class VistaJuego extends View {



ThreadJuego juego = new ThreadJuego();
ThreadFaba hiloFaba= new ThreadFaba();

MainActivity main;

public VistaJuego(Context context, AttributeSet attrs) {
    super(context, attrs);
    //dialogo= new DialogoFinJuego(MainActivity.this);
    main= new MainActivity();
} 公共无效,当公共无效{

    if((elementofaba.getPosX()+elementofaba.getAncho()>=elementoBotella.getPosX()+15)&&
            (elementofaba.getPosX()+elementofaba.getAncho() <= elementoBotella.getPosX()+elementoBotella.getAncho()+15)&&
            (elementofaba.getPosY()+elementofaba.getAlto()>=elementoBotella.getPosY())
            && (elementofaba.getPosY()+elementofaba.getAlto() <= elementoBotella.getPosY()+elementoBotella.getAlto())){
        juego.detener();
        hiloFaba.detener();

        main.goToActivityLosed();

    }

如果要启动活动,请使用上下文而不是活动

例如:

public void whenBeanCrash(Grafico elementofaba,Grafico elementoBotella){
     // ...
     // and not main.goToActivityLosed()
     Context context = getContext();
     context.startActivity(new Intent(context, YourActivity.class));
}
或者,您可以创建一个函数来设置活动对象:

public void setActivity(MainActivity activity){
       this.activity = activity;
       // and now in whenBeanCrash() you can use this.activity to call function from this class
}

我已经使用了您的代码,但是我的logCat显示java.lang.runtimeexception无法启动活动组件信息编辑问题,并且超过了logCat.PS.和AndroidManifest.xml。可能您没有在AndroidManifest.xmlno中声明活动,因为我在AndroidManifest.xml中看到了我的代码,并且我的活动也在那里。但是情况是,VistaJuego是MainActivity中的一个类,通过一个线程在屏幕上移动,我希望当与瓶子发生碰撞时,go是ActivityLosedOK,但如果你没有通过logcat,我无法帮助你。你可以上传一个屏幕截图来提问