Android在SharedPreference中保存Edittexts的值

时间:2014-01-20 12:49:16

标签: java android save android-edittext sharedpreferences

在我的Android应用程序..我想将用户的详细信息保存到SharedPreference ..在同一个应用程序中我使用共享首选项来保存登录信息,它工作正常..我用来保存用户的方法相同细节..但它不起作用,appp崩溃..在用户详细信息中,用户的名字,中间名和姓氏以及他的出生日期被收集..我在这里给我的代码。请帮忙..

UserDetailsActivity:

public void gReport(View V)

    {











        long sum1 = 0;
        long sum2 = 0;
        long sum3 = 0;
        long sum7 = 0;
        long sum8 = 0;
        long sum9 = 0;
        long sum10 = 0;
        long sum11 = 0;
        long sum12 = 0;
        long sum13 = 0;
        long sum14 = 0;
        long sum15 = 0;
        long sum16 = 0;
        long sum17 = 0;
        long sum18 = 0;
        long sum19 = 0;
        long sum20 = 0;
        long sum22 = 0;
        long sum23 = 0;
        long sum24 = 0;
        long sum25 = 0;
        long sum70 = 0;
        long sum80 = 0;
        long sum90 = 0;
        //Destiny Number Karmic Debt
        long kar1 = 0;
        long kar2 = 0;
        long kar3 = 0;
        long kar7 = 0;
        //Heart Number Karmic Debt
        long kar4 = 0;
        long kar5 = 0;
        long kar6 = 0;
        long kar8 = 0;
        //Talent Number Karmic Debt
        //long kar9 = 0;
        long kar10 = 0;
        long kar11 = 0;
        //Personality Number Karmic Debt
        long kar12 = 0;
        long kar13 = 0;
        long kar14 = 0;
        long kar15 = 0;
        //Minor expression Number Karmic Debt
        long kar16 = 0;
        long kar17 = 0;
        long kar18 = 0;
        long kar19 = 0;

        //Minor Heart Desire Number Karmic Debt
        long kar20 = 0;
        long kar21 = 0;
        long kar22 = 0;
        long kar23 = 0;

        //Minor Personality Number Karmic Debt
        long kar24 = 0;
        long kar25 = 0;
        long kar26 = 0;
        long kar27 = 0;
        //Balance Number Karmic Debt
        long kar28 = 0;
        //year now to single digit
        long yearnow = 0;
        //month now to single digit
        long monthnow = 0;
        //Day now to single digit
        long daynow = 0;

        long ch = 0;
        long ch1 = 0;
        long ch2 = 0;
        long ch4 = 0;
        long ch3 = 0;
        long pin1 = 0;
        long pin2 = 0;
        long pin3 = 0;
        long pin4 = 0;
        long pin = 0;
        long br1 = 0;
        long br2 = 0;
        long br3 = 0;
        long a =0;

        int yearat =0;
        int monthat = 0;
        int dayat = 0;



        GregorianCalendar gc = new GregorianCalendar();
        yearat = gc.get(Calendar.YEAR);
        yearstr = Integer.toString(yearat);
        monthat = gc.get(Calendar.MONTH) + 1;
        monthstr = Integer.toString(monthat);
        dayat = gc.get(Calendar.DAY_OF_MONTH);
        daystr = Integer.toString(dayat);




        List<Integer> sum21;


        EditText et1 = (EditText) findViewById (R.id.editText1);
        EditText et2 = (EditText) findViewById (R.id.editText2);
        EditText et3 = (EditText) findViewById (R.id.editText3);

        EditText et4 = (EditText) findViewById (R.id.editText4);
        EditText et5 = (EditText) findViewById (R.id.editText5);
        EditText et6 = (EditText) findViewById (R.id.editText6);

        EditText et7 = (EditText) findViewById (R.id.editText7);        
        EditText et8 = (EditText) findViewById (R.id.editText8);
        EditText et9 = (EditText) findViewById (R.id.editText9);






        sum1 = getSum1(et1.getText().toString());
        sum2 = getSum2(et2.getText().toString());
        sum3 = getSum3(et3.getText().toString());

        sum7 = getSum7(et7.getText().toString());
        sum8 = getSum8(et8.getText().toString());
        sum9 = getSum9(et9.getText().toString());

        sum11 = getSum11((et7.getText().toString()) + (et8.getText().toString()) + (et9.getText().toString()));
        sum12 = getSum12(et1.getText().toString() + et2.getText().toString() + et3.getText().toString());

        sum13 = getSum13(et1.getText().toString() + et2.getText().toString() + et3.getText().toString());
        sum14 = getSum14(et4.getText().toString() + et5.getText().toString() + et6.getText().toString());
        sum15 = getSum15(et4.getText().toString() + et5.getText().toString() + et6.getText().toString());
        sum16 = getSum16(et4.getText().toString() + et5.getText().toString() + et6.getText().toString());
        sum18 = getSum18((yearstr) + (et7.getText().toString() + et8.getText().toString()));
        sum19 = getSum19((monthstr) + (sum18));
        sum20 = getSum20((daystr) + sum19);
        sum21 = getMissingNo(et1.getText().toString() + et2.getText().toString() + et3.getText().toString());

        //Destiny Numberkarmic debt
        kar1 = getKar1(et1.getText().toString());
        kar2 = getKar2(et2.getText().toString());
        kar3 = getKar3(et3.getText().toString());
        kar7 = getKar7(et1.getText().toString() + et2.getText().toString() + et3.getText().toString());
        //Heart Number karmic debt
        kar4 = getKar4(et1.getText().toString());
        kar5 = getKar5(et2.getText().toString());
        kar6 = getKar6(et3.getText().toString());
        kar8 = getKar8(et1.getText().toString() + et2.getText().toString() + et3.getText().toString());
        //Talent Number Karmic Debt
        //kar9 = getKar9(et7.getText().toString());

        kar10 = getKar10(et9.getText().toString());
        kar11 = getKar11(et7.getText().toString() + et8.getText().toString() + et9.getText().toString());

        //Personality Number karmic Debt

        kar12 = getKar12(et1.getText().toString());
        kar13 = getKar13(et2.getText().toString());
        kar14 = getKar14(et3.getText().toString());
        kar15 = getKar15(et1.getText().toString() + et2.getText().toString() + et3.getText().toString());

        //Minor Expression Number Karmic Debt Calculation

        kar16 = getKar16(et4.getText().toString());
        kar17 = getKar17(et5.getText().toString());
        kar18 = getKar18(et6.getText().toString());
        kar19 = getKar19(et4.getText().toString() + et5.getText().toString() + et6.getText().toString());

        //Minor Heart Desire Number karmic debt
        kar20 = getKar20(et4.getText().toString());
        kar21 = getKar21(et5.getText().toString());
        kar22 = getKar22(et6.getText().toString());
        kar23 = getKar23(et4.getText().toString() + et5.getText().toString() + et6.getText().toString());

        //Minor Personality Number karmic Debt

        kar24 = getKar24(et4.getText().toString());
        kar25 = getKar25(et5.getText().toString());
        kar26 = getKar26(et6.getText().toString());
        kar27 = getKar27(et4.getText().toString() + et5.getText().toString() + et6.getText().toString());

        //First Pinnacle Karmic Debt




        sum70 = getsum70(et7.getText().toString());
        sum80 = getSum80(et8.getText().toString());
        sum90 = getSum90(et9.getText().toString());



        sum10 = getSum10 ((et1.getText().toString()) + (et2.getText().toString()) + (et3.getText().toString()));
        pin1  = getSumpin1(Integer.toString((int)sum70) + Integer.toString((int) sum80));
        pin2  = getSumpin2(Integer.toString((int)sum70) + Integer.toString((int)sum90));
        pin3  = getSumpin3(Integer.toString((int)pin1) + Integer.toString((int)pin2));
        pin4  = getSumpin4(Integer.toString((int)sum80) + Integer.toString((int)sum90));


        String firstName     = et1.getText().toString();
        String middleName    = et2.getText().toString();
        String lastName      = et3.getText().toString();
        String callFirstName = et4.getText().toString();
        String dates         = et7.getText().toString();
        String months        = et8.getText().toString();
        String years         = et9.getText().toString();

        String aChar3 = "";



        if(firstName.trim().length()>0)

           {
            aChar3 = firstName.substring(0,1);
           }

        String aChar4 = "";

        if(middleName.trim().length()>0)

           {
            aChar4 = middleName.substring(0,1);
           }

        String aChar5 = "";

        if (lastName.trim().length()>0)

           {
            aChar5 = lastName.substring(0,1);
           }







        StringBuilder sb  = new StringBuilder();
        sb.append(aChar3);
        sb.append(aChar4);
        sb.append(aChar5);
        String aChar6 = sb.toString();
        sum22 = getSum22(String.valueOf(aChar6));
        //Balance Number Karmic Debt
        kar28 = getKar28(String.valueOf(aChar6));

        char aChar = firstName.charAt(0);
        int strLength = firstName.length();
        char aChar1 = firstName.charAt(strLength-1);
        char aChar2 = gReport1(V);
        int itemCount =9 - sum21.size();


        sum23 = getSum23(String.valueOf(aChar1));
        sum24 = getSum24(String.valueOf(aChar));
        sum25 = getSum25(String.valueOf(aChar2));

        //GregorianCalendar gc = new GregorianCalendar();
        //int yearat = gc.get(Calendar.YEAR);


        int day1 = Integer.parseInt(et7.getText().toString());
        int month1 = Integer.parseInt(et8.getText().toString());
        int year1 = Integer.parseInt(et9.getText().toString());



       String s1 = String.valueOf(FullExplanationEntry.this.getAge(year1, month1, day1));






        int val = 0;
        long val1  = sum11;
        //long val   = sum16;
        val = Integer.valueOf(s1);
        long val2  = 36 - val1;
        int val4   = 9;

        long val5  = val2 + val4;

        long val6  = val5 + val4;

        long val7  = val6 + 80;


        long val18 = val2 + 1;
        long val19 = val5 + 1;
        long val20 = val6 + 1;

        long pYear = 0;




        if (sum70 > sum80)
        {
            ch1 = (sum70 - sum80);
        }
        else
        {
            ch1 = (sum80 - sum70);
        }

        if (sum70 > sum90)
        {
            ch2 = (sum70 - sum90);
        }
        else
        {
            ch2 = (sum90 - sum70);
        }

        if (sum80 > sum90)
        {
            ch4 = (sum80 - sum90);
        }
        else
        {
            ch4 = (sum90 - sum80);
        }

        if (ch1 > ch2)
        {
            ch3 = ch1 - ch2;
        }
        else
        {
            ch3 = ch2 - ch1;
        }



        if (val <= val2)
        {
            ch = ch1;
        }


        else if ((val > val2) && (val <= val5))
        {
            ch = ch2;
        }

        else if ((val > val2) && (val> val5) && (val <= val6))
        {
            ch = ch3;
        }

        else if ((val > val2) && (val> val5) && (val > val6) && (val<= val7))
        {
            ch = ch4;
        }


        if (val <= val2)
        {
            pin = pin1;
        }


        else if ((val > val2) && (val <= val5))
        {
            pin = pin2;
        }

        else if ((val > val2) && (val> val5) && (val <= val6))
        {
            pin = pin3;
        }

        else if ((val > val2) && (val> val5) && (val > val6) && (val<= val7))
        {
            pin = pin4;
        }


        if (sum11 > sum10)
        {
            br1 = sum11 - sum10;
        }
        else
        {
            br1 = sum10 - sum11;
        }
        if(sum12 > sum13)
        {
            br2 = sum12 - sum13;
        }
        else
        {
            br2 = sum13 - sum12;
        }
        if(sum10 > sum12)
        {
            br3 = sum10 - sum12;
        }
        else
        {
            br3 = sum12 - sum10;
        }

        int dayS = Integer.parseInt(et7.getText().toString());
        int monthS = Integer.parseInt(et8.getText().toString());
        int yearS = Integer.parseInt(et9.getText().toString());
        yearnow = getSumYear(String.valueOf(yearat));
        monthnow = getSumMonth(String.valueOf(monthat));
        daynow = getSumDay(String.valueOf(dayat));
        //pYear = getKarPyar(String.valueOf(yearat));
        //Karmic Debt Pinnacle
        int karPin1 = 0;
        long karPin2 = 0;
        long karPin3 = 0;
        int karPin4 = 0;
        //Karmic day
        int karDay = 0;
        long karYear = 0;
        //Karmic Debt Personal Year
        long karPyr = 0;
        long karPmn = 0;
        long karPdy = 0;
        int kPin1 = Integer.parseInt(et7.getText().toString()) + Integer.parseInt(et8.getText().toString());
        long kPin2 = sum9 + Integer.parseInt(et7.getText().toString());
        long kPin3 = pin1 + pin2;
        long kPin4 = sum9 + Integer.parseInt(et8.getText().toString());
        long kPyr = yearnow + kPin1;
        long kPmn = monthnow + kPyr;
        long kPdy = daynow + kPmn;
        karYear = getKarYear(String.valueOf(yearnow));


        //Karmic Debt First Pinnacle
        if(kPin1 == 13)
        {
            karPin1 = 13;
        }
        else if(kPin1 == 14)
        {
            karPin1 = 14;
        }
        else if(kPin1 == 16)
        {
            karPin1 = 16;
        }
        else if(kPin1 == 19)
        {
            karPin1 = 19;
        }
        else
        {
            karPin1 = 0;
        }
        //Karmic Debt Pinnacle 2
        if(kPin2 == 13)
        {
            karPin2 = 13;
        }
        else if(kPin2 == 14)
        {
            karPin2 = 14;
        }
        else if(kPin2 == 16)
        {
            karPin2 = 16;
        }
        else if(kPin2 == 19)
        {
            karPin2 = 19;
        }
        else
        {
            karPin2 = 0;
        }
        //Karmic Debt Pinnacle 3
        if(kPin3 == 13)
        {
            karPin3 = 13;
        }
        else if(kPin3 == 14)
        {
            karPin3 = 14;
        }
        else if(kPin3 == 16)
        {
            karPin3 = 16;
        }
        else if(kPin3 == 19)
        {
            karPin3 = 19;
        }
        else
        {
            karPin3 = 0;
        }
      //Karmic Debt Pinnacle 4
        if(kPin4 == 13)
        {
            karPin4 = 13;
        }
        else if(kPin4 == 14)
        {
            karPin4 = 14;
        }
        else if(kPin4 == 16)
        {
            karPin4 = 16;
        }
        else if(kPin4 == 19)
        {
            karPin4 = 19;
        }
        else
        {
            karPin4 = 0;
        }
      //Karmic Debt Personal Year No
        if(kPyr == 13)
        {
            karPyr = 13;
        }
        else if(kPyr == 14)
        {
            karPyr = 14;
        }
        else if(kPyr == 16)
        {
            karPyr = 16;
        }
        else if(kPyr == 19)
        {
            karPyr = 19;
        }
        else
        {
            karPyr = 0;
        }
      //Karmic Debt Personal Month No
        if(kPmn == 13)
        {
            karPmn = 13;
        }
        else if(kPmn == 14)
        {
            karPmn = 14;
        }
        else if(kPmn == 16)
        {
            karPmn = 16;
        }
        else if(kPmn == 19)
        {
            karPmn = 19;
        }
        else
        {
            karPmn = 0;
        }
      //Karmic Debt Personal Day No
        if(kPdy == 13)
        {
            karPdy = 13;
        }
        else if(kPdy == 14)
        {
            karPdy = 14;
        }
        else if(kPdy == 16)
        {
            karPdy = 16;
        }
        else if(kPdy== 19)
        {
            karPdy = 19;
        }
        else
        {
            karPdy = 0;
        }
      //Karmic Debt day
        if(dayS == 13)
        {
            karDay = 13;
        }
        else if(dayS == 14)
        {
            karDay = 14;
        }
        else if(dayS == 16)
        {
            karDay = 16;
        }
        else if(dayS == 19)
        {
            karDay = 19;
        }
        else
        {
            karDay = 0;
        }




        if(firstName.equals(""))
        {
                Toast.makeText(getApplicationContext(), "First Name should not be left blank.. Please enter your First Name and try once again.", Toast.LENGTH_LONG).show();
                return;
        }

        else if(lastName.equals(""))
        {
                Toast.makeText(getApplicationContext(), "Last Name should not be left blank.. Please enter your Last Name and try once again.", Toast.LENGTH_LONG).show();
                return;
        }

        else if(callFirstName.equals(""))
        {
                Toast.makeText(getApplicationContext(), "Please enter your First Name that is currently used and try once again.", Toast.LENGTH_LONG).show();
                return;
        }





        else
        {   

            SharedPreferences setting = getSharedPreferences(PREFS_NAME, 0);
            SharedPreferences.Editor editors = setting.edit();
            editors.putString("log", "log");
            editors.commit(); 


            Intent i = new Intent(this, TabLayoutActivity.class);
        //Intent i = new Intent(this, FullExplanation.class);
        //Intent i = new Intent(this, SecondResult.class);



            //Personal Year
            i.putExtra("name18",sum18 + "");
            //Personal Month
            i.putExtra("name19",sum19 + "");
            //Personal Dya
            i.putExtra("name20",sum20 + "");
            //Current Pinnacle
            i.putExtra("pin", pin + "");
            //Current Challenge
            i.putExtra("ch", ch + "");

            i.putExtra("yearstr", yearstr);
            i.putExtra("monthstr", monthstr);
            i.putExtra("daystr", daystr);



            startActivity(i);


                }



            }

MainActivity

public static final String PREFS_NAME = "LoginPrefs";

    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        setContentView(R.layout.directcalc_xm);


        /*
         * Check if we successfully logged in before. 
         * If we did, redirect to calculation page
         */
        SharedPreferences setting = getSharedPreferences(PREFS_NAME, 0);

                /*if (settings.getString("logged", "").toString().equals("logged")) 
                {
                        Intent intent2 = new Intent(MainActivity.this,FullExplanationEntry.class);
                        startActivity(intent2);
                } */

                if (setting.getString("log", "").toString().equals("log")) 
                {
                        Intent intent1 = new Intent(DirectCalculation.this,TabLayoutActivity.class);
                        startActivity(intent1);
                } 


                else
                {
                    btn1 = (Button) findViewById ( R.id.button1);
                    btn2 = (Button) findViewById ( R.id.button2);

                    btn1.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            Intent intent = new Intent(MainActivity.this, SignInActivity.class);
                            startActivity(intent);

                        }
                    });

logcat的

01-20 12:27:39.684: I/dalvikvm(4750): threadid=3: reacting to signal 3
01-20 12:27:40.301: I/dalvikvm(4750): Wrote stack traces to '/data/anr/traces.txt'
01-20 12:27:44.073: I/Choreographer(4750): Skipped 224 frames!  The application may be doing too much work on its main thread.
01-20 12:27:55.383: I/Choreographer(4750): Skipped 97 frames!  The application may be doing too much work on its main thread.
01-20 12:27:59.350: D/gralloc_goldfish(4750): Emulator without GPU emulation detected.
01-20 12:28:00.944: I/Choreographer(4750): Skipped 73 frames!  The application may be doing too much work on its main thread.
01-20 12:34:36.303: D/dalvikvm(4750): GC_CONCURRENT freed 94K, 8% free 2692K/2916K, paused 370ms+127ms, total 1369ms
01-20 12:34:36.724: I/Choreographer(4750): Skipped 77 frames!  The application may be doing too much work on its main thread.
01-20 12:34:40.427: D/AndroidRuntime(4750): Shutting down VM
01-20 12:34:40.463: W/dalvikvm(4750): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
01-20 12:34:40.913: E/AndroidRuntime(4750): FATAL EXCEPTION: main
01-20 12:34:40.913: E/AndroidRuntime(4750): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.numero/com.example.numero.TabLayoutActivity}: java.lang.NullPointerException
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.os.Looper.loop(Looper.java:137)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.app.ActivityThread.main(ActivityThread.java:5041)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at java.lang.reflect.Method.invokeNative(Native Method)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at java.lang.reflect.Method.invoke(Method.java:511)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at dalvik.system.NativeStart.main(Native Method)
01-20 12:34:40.913: E/AndroidRuntime(4750): Caused by: java.lang.NullPointerException
01-20 12:34:40.913: E/AndroidRuntime(4750):     at com.example.numero.TabLayoutActivity.getCalc(TabLayoutActivity.java:107)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at com.example.numero.TabLayoutActivity.onCreate(TabLayoutActivity.java:41)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.app.Activity.performCreate(Activity.java:5104)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
01-20 12:34:40.913: E/AndroidRuntime(4750):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
01-20 12:34:40.913: E/AndroidRuntime(4750):     ... 11 more
01-20 12:34:45.824: I/Process(4750): Sending signal. PID: 4750 SIG: 9

tablayoutActivity

public class TabLayoutActivity extends TabActivity

{

public static final String PREFS_NAME = "LoginPrefs";

String pyear, pmonth, pday,chn, pinn;




@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setContentView(R.layout.tablay_xm);

    TabHost tabHost = getTabHost();

    pyear = getIntent().getStringExtra("name18");
    pmonth = getIntent().getStringExtra("name19");
    pday = getIntent().getStringExtra("name20");
    pinn = getIntent().getStringExtra("pin");
    chn= getIntent().getStringExtra("ch");
    //value for current year, month and day.
    String yearstring = getIntent().getStringExtra("yearstr");
    String monthstring = getIntent().getStringExtra("monthstr");
    String ms = getCalc(monthstring);

    String daystring = getIntent().getStringExtra("daystr");




    // Tab for Personal Year
    TabSpec photospec = tabHost.newTabSpec("Personal Year");
    // setting Title and Icon for the Tab
    photospec.setIndicator(yearstring, getResources().getDrawable(R.drawable.icon_photos_tab));
    Intent photosIntent = new Intent(this, TabPersonalYr.class);
    //Intent for passing the value of Personal Year
    photosIntent.putExtra("pyear", pyear);
    photosIntent.putExtra("pinn", pinn);


    photospec.setContent(photosIntent);     



    // Tab for Personal Month
    TabSpec songspec = tabHost.newTabSpec("Personal Month");        
    songspec.setIndicator(daystring  + " " +  ms, getResources().getDrawable(R.drawable.icon_songs_tab));
    Intent songsIntent = new Intent(this, TabPersonalMnth.class);
    //Intent for passing the value of Personal Month
    songsIntent.putExtra("pmonth", pmonth);
    songsIntent.putExtra("pday", pday);

    songspec.setContent(songsIntent);

    // Tab for Videos
    TabSpec videospec = tabHost.newTabSpec("Personal Day");
    videospec.setIndicator("Challenge", getResources().getDrawable(R.drawable.icon_videos_tab));
    Intent videosIntent = new Intent(this, TabPersonalDay.class);
    //Intent for passing the value of Currrent Challenge
    videosIntent.putExtra("chn", chn);
    videospec.setContent(videosIntent);

    // Adding all TabSpec to TabHost
    tabHost.addTab(photospec); // Adding Personal Year tab
    tabHost.addTab(songspec); // Adding Personal Month , Day tab
    tabHost.addTab(videospec); // Adding Challenge tab


    for (int i = 0;i<tabHost.getTabWidget().getChildCount(); i++) {
        tabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.icon_videos_tab);
        TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
       // tv.setTextColor(Color.parseColor("#000000"));
        tv.setTextColor(Color.parseColor("#FFFFFF"));
    }
    TextView t = (TextView) tabHost.getCurrentTabView().findViewById(android.R.id.title); //for Selected Tab
    t.setTextColor(Color.parseColor("#FFFFFF"));



}







private String getCalc(String monthstring) {
        String ms = "0";
        // TODO Auto-generated method stub

        if(monthstring.equals("1"))            // line number 107
        {
            ms= "January";
            return ms;
        }
        else if(monthstring.equals("2"))
        {
            ms= "February";
            return ms;
        }

        else if(monthstring.equals("3"))
        {
            ms= "March";
            return ms;
        }

        else if(monthstring.equals("4"))
        {
            ms= "April";
            return ms;
        }

        else if(monthstring.equals("5"))
        {
            ms= "May";
            return ms;
        }

        else if(monthstring.equals("6"))
        {
            ms= "June";
            return ms;
        }

        else if(monthstring.equals("7"))
        {
            ms= "July";
            return ms;
        }

        else if(monthstring.equals("8"))
        {
            ms= "August";
            return ms;
        }

        else if(monthstring.equals("9"))
        {
            ms= "September";
            return ms;
        }

        else if(monthstring.equals("10"))
        {
            ms= "October";
            return ms;
        }

        else if(monthstring.equals("11"))
        {
            ms= "November";
            return ms;
        }

        else if(monthstring.equals("12"))
        {
            ms= "December";
            return ms;
        }
        else
            return "0";

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
            if (item.getItemId() == R.id.button04) {
                    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
                    SharedPreferences.Editor editor = settings.edit();
                    editor.remove("logged");
                    editor.commit();
                    finish();
            }
            return super.onOptionsItemSelected(item);



}
}

3 个答案:

答案 0 :(得分:0)

01-20 12:34:40.913:E / AndroidRuntime(4750):引起:java.lang.NullPointerException 01-20 12:34:40.913:E / AndroidRuntime(4750):at com.example.numero.TabLayoutActivity.getCalc(TabLayoutActivity.java:107)

你能展示TabLayoutActivity吗?我相信问题就在那里..

编辑 - 问题似乎是你在onCreate函数中声明了“monthString”。 你应该在外面声明它(你宣布了pyear字符串等),它将解决这个问题..

答案 1 :(得分:0)

变量monthstring为NULL,因此monthstring.equals()抛出空指针异常。

因为在MainActivity中:

if (setting.getString("log", "").toString().equals("log")) 
            {
                    Intent intent1 = new Intent(DirectCalculation.this,TabLayoutActivity.class);
                    startActivity(intent1);
            }

您忘了设置额外数据。

答案 2 :(得分:0)

getIntent().getStringExtra("monthstr");

返回null。 首先,我建议你写if条件更多的无效安全性:

if("1".equals(monthstring))

永远不会抛出NPE。 此外:monthstrnull。 你传递了null值。 不幸的是,你没有发布足够的代码来查看原因。 请发表全班UserDetailsActivity