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