Приложение падает, не знаю почему? - PullRequest
0 голосов
/ 28 августа 2011

У меня есть приложение, которое работает нормально на эмуляторе, я пытался установить его на свой телефон, и оно отлично работает, но на Android Market я получил 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 .... Так что я не знаю, что здесь проблема: (

1 Ответ

0 голосов
/ 29 августа 2011

Этот код чрезвычайно трудно читать ... просто как совет по программированию, вы должны его реорганизовать, чтобы вместо 6 если для 6 переменных у вас были каскадные условные выражения.

Еще один быстрый совет: вместо 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);
}

Попробуйте с условиями, изложенными выше, и посмотрите, что получится.

Удачи!

...