我有一个在模拟器上运行正常的应用程序,我试图在我的手机上安装它并且它运行良好,但在Android市场上我收到了8个崩溃报告。人们抱怨应用程序在我最新版本升级的按钮点击时崩溃。在我的手机上一切都很好。我怎样才能找到问题所在?
的NullPointerException 在bonbon2 $ 1.onClick()
java.lang.NullPointerException
at cro.perger.bonbon.bonbon2$1.onClick(bonbon2.java:64)
at android.view.View.performClick(View.java:2501)
at android.view.View$PerformClick.run(View.java:9111)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3835)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
at dalvik.system.NativeStart.main(Native Method)
java.lang.NullPointerException
at cro.perger.bonbon.bonbon2$1.onClick(bonbon2.java:56)
at android.view.View.performClick(View.java:2408)
at android.view.View$PerformClick.run(View.java:8816)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4633)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
java.lang.NullPointerException
at cro.perger.bonbon.bonbon2$1.onClick(bonbon2.java:48)
at android.view.View.performClick(View.java:2408)
at android.view.View$PerformClick.run(View.java:8816)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4633)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
编辑:
这是导致问题的文件代码bonbon2.java
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
public class bonbon2 extends Activity
{
Button btnKombinacija;
EditText text1;
Context context=this;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
btnKombinacija = (Button) findViewById(R.id.button1);
btnKombinacija.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
CheckBox maliRazgovori = (CheckBox) findViewById(R.id.checkBox3);
CheckBox maliSMS = (CheckBox) findViewById(R.id.checkBox5);
CheckBox maliInternet = (CheckBox) findViewById(R.id.checkBox8);
CheckBox srednjiRazgovori = (CheckBox) findViewById(R.id.checkBox2);
CheckBox srednjiSMS = (CheckBox) findViewById(R.id.checkBox6);
CheckBox srednjiInternet = (CheckBox) findViewById(R.id.checkBox9);
CheckBox velikiRazgovori = (CheckBox) findViewById(R.id.checkBox1);
CheckBox velikiSMS = (CheckBox) findViewById(R.id.checkBox4);
CheckBox velikiInternet = (CheckBox) findViewById(R.id.checkBox7);
text1 = (EditText) findViewById(R.id.editText1);
*if (maliRazgovori.isChecked() == true && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {*
String kombinacija = "Odabrana kombinacija sadrži (20 minuta prema svim mrežama) i cijena joj je 10kn.";
text1.setText(String
.valueOf(kombinacija));
*} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == true && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {*
String kombinacija = "Odabrana kombinacija sadrži (60 SMS-ova prema svim mrežama) i cijena joj je 10kn";
text1.setText(String
.valueOf(kombinacija));
*} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == true
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {*
String kombinacija = "Odabrana kombinacija sadrži (50 MB prometa) i cijena joj je 10kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == true && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (80 minuta prema svim mrežama) i cijena joj je 30kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == true && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (200 SMS-ova prema svim mrežama) i cijena joj je 30kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == true
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (300 MB prometa) i cijena joj je 30kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == true && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (200 minuta izvan mreže, 300 minuta u mreži) i cijena joj je 60kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == true && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (500 SMS-ova prema svim mrežama) i cijena joj je 60kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == true) {
String kombinacija = "Odabrana kombinacija sadrži (1 GB prometa) i cijena joj je 60kn";
text1.setText(String
.valueOf(kombinacija));
}else if (maliRazgovori.isChecked() == true && maliSMS.isChecked() == true && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (20 minuta prema svim mrežama, 60 SMS-ova prema svim mrežama) i cijena joj je 20kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == true && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == true && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (20 minuta prema svim mrežama, 200 SMS-ova prema svim mrežama) i cijena joj je 40kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == true && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == true && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (20 minuta prema svim mrežama, 500 SMS-ova prema svim mrežama) i cijena joj je 70kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == true && maliSMS.isChecked() == false && maliInternet.isChecked() == true
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (20 minuta prema svim mrežama, 50 MB prometa) i cijena joj je 20kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == true && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == true
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (20 minuta prema svim mrežama, 300 MB prometa) i cijena joj je 40kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == true && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == true) {
String kombinacija = "Odabrana kombinacija sadrži (20 minuta prema svim mrežama, 1 GB prometa) i cijena joj je 70kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == true && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == true && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (80 minuta prema svim mrežama, 60 SMS-ova prema svim mrežama) i cijena joj je 40kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == true && srednjiSMS.isChecked() == true && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (80 minuta prema svim mrežama, 200 SMS-ova prema svim mrežama) i cijena joj je 60kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == true && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == true && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (80 minuta prema svim mrežama, 500 SMS-ova prema svim mrežama) i cijena joj je 90kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == true
&& srednjiRazgovori.isChecked() == true && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (80 minuta prema svim mrežama, 50 MB prometa) i cijena joj je 40kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == true && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == true
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (80 minuta prema svim mrežama, 300 MB prometa) i cijena joj je 60kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == true && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == true) {
String kombinacija = "Odabrana kombinacija sadrži (80 minuta prema svim mrežama, 1 GB prometa) i cijena joj je 90kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == true && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == true && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (200 minuta izvan mreže, 300 minuta u mreži, 60 SMS-ova prema svim mrežama) i cijena joj je 70kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == true && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == true && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (200 minuta izvan mreže, 300 minuta u mreži, 200 SMS-ova prema svim mrežama) i cijena joj je 90kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == true && velikiSMS.isChecked() == true && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (200 minuta izvan mreže, 300 minuta u mreži, 500 SMS-ova prema svim mrežama) i cijena joj je 120kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == true
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == true && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (200 minuta izvan mreže, 300 minuta u mreži, 50 MB prometa) i cijena joj je 70kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == true
&& velikiRazgovori.isChecked() == true && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (200 minuta izvan mreže, 300 minuta u mreži, 300 MB prometa) i cijena joj je 90kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == true && velikiSMS.isChecked() == false && velikiInternet.isChecked() == true) {
String kombinacija = "Odabrana kombinacija sadrži (200 minuta izvan mreže, 300 minuta u mreži, 1 GB prometa) i cijena joj je 120kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == true && maliInternet.isChecked() == true
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (60 SMS-ova prema svim mrežama, 50 MB prometa) i cijena joj je 20kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == true && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == true
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == false) {
String kombinacija = "Odabrana kombinacija sadrži (60 SMS-ova prema svim mrežama, 300 MB prometa) i cijena joj je 40kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == true && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == false && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == false && velikiInternet.isChecked() == true) {
String kombinacija = "Odabrana kombinacija sadrži (60 SMS-ova prema svim mrežama, 1 GB prometa) i cijena joj je 70kn";
text1.setText(String
.valueOf(kombinacija));
} else if (maliRazgovori.isChecked() == false && maliSMS.isChecked() == false && maliInternet.isChecked() == false
&& srednjiRazgovori.isChecked() == true && srednjiSMS.isChecked() == false && srednjiInternet.isChecked() == false
&& velikiRazgovori.isChecked() == false && velikiSMS.isChecked() == true && velikiInternet.isChecked() == true) {
String kombinacija = "Odabrana kombinacija sadrži (80 minuta prema svim mrežama, 500 SMS-ova prema svim mrežama, 1 GB prometa) i cijena joj je 150kn";
text1.setText(String
.valueOf(kombinacija));
}else {
String kombinacija = "Odabrana kombinacija nije dobra, molim odaberi ponovo!";
text1.setText(String
.valueOf(kombinacija));
}
}
});
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu2, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.about:
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Paketi - info");
StringBuilder sb = new StringBuilder();
sb.append("Kao i inače u bonbonu, ni u jednoj od ovih kombinacija ne plaćaš naknadu za uspostavu poziva :-) " +
"Obračunska jedinica za pozive je 1 sekunda, a obračunska jedinica za prijenos podataka je 100 kB. " +
"Paket će ti se aktivirati u najkraćem mogućem roku, a najkasnije u roku od 24 sata. O aktivaciji paketa " +
"primit ćeš SMS obavijest, zato pričekaj poruku prije nego što ga počneš koristiti. Možeš kupiti samo jednu " +
"veličinu paketa razgovora, SMS-a ili interneta npr. mali paket razgovora, srednji paket SMS-a i veliki paket " +
"interneta. No ne moraš kupiti sva tri paketa odjednom – nekad možeš kupiti jedan, dva ili čak nijedan, ovisi " +
"koja ti kombinacija u tom trenutku treba. Ne pristaj na kompromise nego si složi onu kombinaciju koja te u tom " +
"trenutku pali! Paket koji odabereš vrijedi 30 dana od dana aktivacije i nakon isteka će ti se automatski reaktivirati " +
"ako imaš dovoljno novca na računu, ako ti nije istekla valjanost bonbon računa i ako paket nisi u međuvremenu sam " +
"deaktivirao. O isteku paketa i mogućnosti da ga deaktiviraš bit ćeš obaviješten SMS porukom prije isteka." +
"Nakon isteka 30 dana možeš složiti svoju novu bonbon kombinaciju. Ili zadržati staru, ako ti tako odgovara :-)" +
"Ako potrošiš svoj paket unutar 30 dana (o čemu ćemo te obavijestiti SMS-om), sam možeš kupiti novi paket ali jednake v" +
"eličine. Ako želiš unutar tih 30 dana aktivirati paket druge veličine, kontaktiraj nas :-) Ako ne želiš kupovati novi " +
"paket – ne moraš, tada jednostavno nastavi razgovarati, slati poruke i surfati po standardno dobrim bonbon cijenama iz " +
"osnovne tarife. Ako svoj paket ne potrošiš unutar 30 dana, nepotrošene minute, SMS-ove i MB-e više nećeš moći koristiti." +
"Ako si aktivirao mali, srednji ili veliki paket razgovora, trebaš imati barem 1 lipu na računu da bi mogao koristiti minute " +
"uključene u paket. I na kraju, ovo ćeš se sigurno pitati pa ti odmah dajemo odgovor: ako sudjeluješ u promociji „pričaj for " +
"free do 2020.“ i imaš aktiviran neki od paketa razgovora, prvo će ti se trošiti minute iz promocije, a tek nakon toga minute " +
"iz paketa. ");
sb.append("\n");
alertDialog.setMessage(sb.toString());
alertDialog.setButton("Povratak", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
alertDialog.show();
break;
case R.id.exit:
finish();
}
return true;
}
}
错误报告中的第48,56和64行是ITALIC ....所以我不知道这里有什么问题:(
答案 0 :(得分:0)
这段代码非常难以阅读......就像编程提示一样,你应该重构它,而不是6个变量的ifs,你有级联条件。
另一个快速提示:只需使用if(box.isChecked == false)
,而不是if(!box.isChecked)
。相同的效果,更易读的代码。
也就是说,您的活动似乎无法找到您提供的复选框的布局资源。
Android会非常积极地回收视图,我猜想当系统不在屏幕上时,系统会回收这些视图,并且当您尝试使用box.isChecked
引用它时,会导致空指针异常。
确保您的velikiRazgovori
,velikiSMS
和velikiInternet
框(因为它们是引发错误的行中的三个)都显示在屏幕上。
你可以通过将三个条件中的每一个放在单独的行上来调试它,如下所示:
if (maliRazgovori.isChecked() &&
!maliSMS.isChecked() &&
!maliInternet.isChecked() &&
!srednjiRazgovori.isChecked() &&
!srednjiSMS.isChecked() &&
!srednjiInternet.isChecked() &&
!velikiRazgovori.isChecked() &&
!velikiSMS.isChecked() &&
!velikiInternet.isChecked()
{
String kombinacija = "Odabrana kombinacija sadrži
(20 minuta prema svim mrežama) i cijena joj je 10kn.";
text1.setText(kombinacija);
}
尝试使用上述条件,看看会发生什么。
祝你好运!