用新的intent调用相同的activity



我是Android新手,我使用Intent有问题。我希望你能帮助我。

我想,在一个活动中,用一个按钮打开一个对话框。当您按下按钮时,它会再次加载相同的活动,但会重置一些参数。就像第一轮,然后是第二轮。

我有一个end-dialog,因为它调用了另一个活动第二个对话框工作得很好,我在另一个类中使用show(在类partida的方法中),但问题是当我在下一轮弹出窗口打开时按OK。我不知道该放些什么。我还声明了一些静态变量和普通变量。

这是我的代码:

partida partida;
public String animal, oculta, vidasS, puntosS, rondaS;
public TextView palabra, vidasrest, puntostot, rondanum;
ImageView vida;
Button []btn=new Button[27];
static int vidas=5;
static int puntos=0;
static int ronda=1;
static AlertDialog.Builder finalpartida, rondanueva;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
partida=new partida();
setContentView(R.layout.activity_partida);
finalpartida = new AlertDialog.Builder(this);  
finalpartida.setTitle("Final de la partida");  
finalpartida.setMessage("Click OK para finalizar partida");            
finalpartida.setCancelable(false);  
finalpartida.setNegativeButton("Ok", new DialogInterface.OnClickListener() {  
public void onClick(DialogInterface finalpartida, int id) {  
//Creamos el Intent
Intent intent = new Intent(PartidaActivity.this, MainActivity.class);
vidas=5;
ronda=1;
puntos=0;
finish();
//Iniciamos la nueva actividad
startActivity(intent);
}  
});
animal=partida.animal;
oculta=partida.inicializa(animal);
palabra = (TextView)findViewById(R.id.wordtxt);
palabra.setText(oculta);
vidasrest = (TextView)findViewById(R.id.txtvidas);
vidasS = Integer.toString(vidas);
vidasrest.setText("Vidas: "+vidasS);
vida = (ImageView)findViewById(R.id.imgvidas);
puntostot = (TextView)findViewById(R.id.txtPuntos);
puntosS = Integer.toString(puntos);
puntostot.setText("Puntos: "+puntosS);
rondanum = (TextView)findViewById(R.id.txtronda);
rondaS = Integer.toString(ronda);
rondanum.setText("Ronda: "+rondaS);
rondanueva = new AlertDialog.Builder(this);  
rondanueva.setTitle("Fin de ronda "+ronda);  
rondanueva.setMessage("Click OK para siguiente ronda");            
rondanueva.setCancelable(false);  
rondanueva.setNegativeButton("Ok", new DialogInterface.OnClickListener() {  
public void onClick(DialogInterface rondanueva, int id) {  
vidas=5;
ronda++;
//THIS DOESN'T WORK
Intent intent = new Intent(PartidaActivity.this, RondaActivity.class);
finish();
startActivity(intent);
//NEITHER THIS: ((Activity) rondanueva).setTitle("Fin de ronda "+ronda);

animal=partida.animal;//nombre del animal
oculta=partida.inicializa(animal);//estructuro palabra vacía
palabra.setText(oculta);
vidasS = Integer.toString(vidas);
vidasrest.setText("Vidas: "+vidasS);
vida.setImageResource(R.drawable.vidas5);
rondaS = Integer.toString(ronda);
rondanum.setText("Ronda: "+rondaS);
}  
});
}

使用Intent时的错误日志i=getIntent();startActivity(我);在onClick

09-09 17:07:09.294: W/System.err(329): java.lang.NullPointerException:资产09-09 17:07:09.294: W/System.err(329): at android.content.res.AssetManager。readAsset(本地方法)09-09 17:07:09.354: W/System.err(329): at android.content.res.AssetManager.access$700(AssetManager.java:36)09-09 17:07:09.354: W/System.err(329): at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:572)09-09 17:07:09.364: W/System.err(329): at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:516)09-09 17:07:09.364: W/System.err(329): at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:479)09-09 17:07:09.364: W/System.err(329): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:318)09-09 17:07:09.374: W/System.err(329): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:275)09-09 17:07:09.374: W/System.err(329): at org.jdom2.input. saxbuilderengine .build(SAXBuilderEngine.java:217)09-09 17:07:09.374: W/System.err(329): at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:253)09-09 17:07:09.374: W/System.err(329): at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1091)09-09 17:07:09.374: W/System.err(329): at org.myproject. ahorcadoanimals.xml .(Xml.java:25)09-09 17:07:09.374: W/System.err(329): at org.myproject. ahorcadoanimals .partida.(partida.java:13)09-09 17:07:09.394: W/System.err(329): at org.myproject. ahorcadoanimals . partidaactivity . oncreate (PartidaActivity.java:36)09-09 17:07:09.394: W/System.err(329): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)09-09 17:07:09.394: W/System.err(329): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)09-09 17:07:09.394: W/System.err(329): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)09-09 17:07:09.394: W/System.err(329): at android.app.ActivityThread.access$1500(ActivityThread.java:117)09-09 17:07:09.394: W/System.err(329): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)09-09 17:07:09.394: W/System.err(329): at android.os.Handler.dispatchMessage(Handler.java:99)09-09 17:07:09.394: W/System.err(329): at android.os. loop .loop(loop .java:123)09-09 17:07:09.394: W/System.err(329): at android.app.ActivityThread.main(ActivityThread.java:3683)09-09 17:07:09.394: W/System.err(329): at java.lang.reflect.Method。invokeNative(本地方法)09-09 17:07:09.424: W/System.err(329): at java.lang.reflect.Method.invoke(Method.java:507)09-09 17:07:09.424: W/System.err(329): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)09-09 17:07:09.444: W/System.err(329): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)09-09 17:07:09.444: W/System.err(329): at dalvik.system. native . art。主要(本地方法)09-09 17:07:09.564: D/AndroidRuntime(329): closing down VM .日志示例09-09 17:07:09.564: W/dalvikvm(329): threadid=1:线程退出未捕获异常(group=0x40015560)09-09 17:07:09.604: E/AndroidRuntime(329): FATAL EXCEPTION: main09-09 17:07:09.604: E/AndroidRuntime(329): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.myproject.ahorcadoanimales/org.myproject.ahorcadoanimales。PartidaActivity}: java.lang.NullPointerException09-09 17:07:09.604: E/AndroidRuntime(329): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)09-09 17:07:09.604: E/AndroidRuntime(329): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)09-09 17:07:09.604: E/AndroidRuntime(329): at android.app.ActivityThread.access$1500(ActivityThread.java:117)09-09 17:07:09.604: E/AndroidRuntime(329): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)09-09 17:07:09.604: E/AndroidRuntime(329): at android.os.Handler.dispatchMessage(Handler.java:99)09-09 17:07:09.604: E/AndroidRuntime(329): at android.os. loop .loop(loop .java:123)09-09 17:07:09.60: E/AndroidRuntime(329): at android.app.ActivityThread.main(ActivityThread.java:3683)09-09 17:07:09.604: E/AndroidRuntime(329): at java.lang.reflect.Method。invokeNative(本地方法)09-09 17:07:09.604: E/AndroidRuntime(329): at java.lang.reflect.Method.invoke(Method.java:507)09-09 17:07:09.604: E/AndroidRuntime(329): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)09-09 17:07:09.604: E/AndroidRuntime(329): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)09-09 17:07:09.604: E/AndroidRuntime(329): at dalvik.system. native . art。主要(本地方法)09-09 17:07:09.604: E/AndroidRuntime(329): Caused by: java.lang.NullPointerException .日志示例09-09 17:07:09.604: E/AndroidRuntime(329): at org.myproject. ahorcadoanimals .partida. initializa (partida.java:19)09-09 17:07:09.604: E/AndroidRuntime(329): at org.myproject. ahorcadoanimations . partidaactivity . oncreate (PartidaActivity.java:66)09-09 17:07:09.604: E/AndroidRuntime(329): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)09-09 17:07:09.604: E/AndroidRuntime(329): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)09-09 17:07:09.604: E/AndroidRuntime(329):…11个

这是很有可能的,如果应用程序崩溃,每次你试图启动一个活动,你试图启动的活动没有正确声明在你的AndroidManifest.xml文件。

https://developer.android.com/reference/android/app/Activity.html

问题是你没有看到一个对话框弹出?如果不是,你能解释一下到底是什么问题吗?

最新更新