android项目中的空指针异常

时间:2015-10-13 10:22:19

标签: android android-layout android-fragments android-intent android-activity

在我的项目中,我在下面显示的类中得到了nullpointerexception,我也在下面添加了logcat和java类。在if的情况下我给出的条件如“if(name == null)”我不确定它是正确的还是错误如果错误意味着建议我使用正确的代码解决NPE ..

提前谢谢

public void onClick(DialogInterface dialog,int id)
 {
                        // yes();
Intent tablewise = new Intent(Seating_Engagement.this,LoginForm.class);
                            startActivity(tablewise);
                            finish();

                        }
                })

logcat的:

10-13 10:25:33.914  24201-24201/com.sentientit.theiWedplanner E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NullPointerException
            at com.sentientit.theiWedplanner.Seating_Engagement$2.onClick(Seating_Engagement.java:77)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:18190)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:175)
            at android.app.ActivityThread.main(ActivityThread.java:5279)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
            at dalvik.system.NativeStart.main(Native Method)
10-13 10:25:45.445  24201-24206/com.sentientit.theiWedplanner I/dalvikvm﹕ threadid=3: reacting to signal 3
10-13 10:25:45.578  24201-24206/com.sentientit.theiWedplanner I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'

在第77行,发生异常我在下面的java文件中将该行标记为(77)

Seating_Engagement

    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.app.ProgressDialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.view.View;
    import android.widget.Button;

    import com.bugsense.trace.BugSenseHandler;

    import java.util.StringTokenizer;

    public class Seating_Engagement extends FragmentActivity{

        ProgressDialog myProgressDialog = null;
        String username=welcomeuser1.usernamevalue;
        String result=null;
        String nameresult=null;
        String Table,Chart=null;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);       BugSenseHandler.initAndStartSession(this, "68640bea");

            setContentView(R.layout.seatingchart);

            Button familywise=(Button)findViewById(R.id.familywise);
            Button tablewisesummary=(Button)findViewById(R.id.tableclassify);
            Button assignedguest=(Button)findViewById(R.id.assignedguest);
            Button notassignedguest=(Button)findViewById(R.id.notassignedguest);
            Button tablechair=(Button)findViewById(R.id.tableclass);
            Button groupwise=(Button)findViewById(R.id.groupwise);
            Button tablewise=(Button)findViewById(R.id.tablewisesummary);
            Button familywisesummary=(Button)findViewById(R.id.familywisesummary);
            Button groupwisesummary=(Button)findViewById(R.id.groupwisesummary);
            Button arrangementsummary=(Button)findViewById(R.id.totaltables);


             Button back=(Button)findViewById(R.id.back);
            Button seatingoverview =(Button)findViewById(R.id.seatingview);

            back.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    finish();
                }
            });

            seatingoverview.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    if(username.equals("null"))
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)
                        .setTitle("Message!")
                        .setPositiveButton(R.string.ok1,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                        int id) {
                        // yes();
 (77)   Intent tablewise = new Intent(Seating_Engagement.this,LoginForm.class);
                            startActivity(tablewise);
                            finish();
                            }
                    })
                        .setMessage("Registered users can access this page. Click 'Yes' to login")
                        .setNegativeButton(R.string.no,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {


                            }
                        })

                        .create();
                        locationError.show();
                    }
                    else
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)

                        .setPositiveButton("Table",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // yes();
                                Intent tablewise = new Intent(Seating_Engagement.this,
                                        Seating_EngagementTable.class);
                                startActivity(tablewise);
                                //  finish();


                            }
                        })

                        .setNegativeButton("Chart",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                Intent tab=new Intent(Seating_Engagement.this,Seating_Engagementviewtable.class);
                                startActivity(tab);
                                finish();


                            }
                        })

                        .create();
                        locationError.show();


                    }



                }
            });


            notassignedguest.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                    Intent tablewise=new Intent(Seating_Engagement.this,Engagement_Notyetseated.class); 
                    startActivity(tablewise);
                    //                  finish();

                }

            });

            assignedguest.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent tablewise=new Intent(Seating_Engagement.this,Engagement_AssignedGuest.class);
                    startActivity(tablewise);
                    //finish();

                }

            });



            tablechair.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent tablewise=new Intent(Seating_Engagement.this,Engagement_TableClassify.class);    
                    startActivity(tablewise);
                    //                  finish();

                }
            });


            tablewisesummary.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    if(username.equals("null"))
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)
                        .setTitle("Message!")
                        .setPositiveButton(R.string.ok1,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // yes();
                                Intent tablewise = new Intent(Seating_Engagement.this,
                                        LoginForm.class);
                                startActivity(tablewise);
                                finish();


                            }
                        })
                        .setMessage("Registered users can access this page. Click 'Yes' to login")
                        .setNegativeButton(R.string.no,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {


                            }
                        })

                        .create();
                        locationError.show();
                    }
                    else
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)

                        .setPositiveButton("Table",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // yes();
                                Intent tablewise = new Intent(Seating_Engagement.this,
                                        Engagement_TableChairSummary.class);
                                startActivity(tablewise);
                                //finish();


                            }
                        })

                        .setNegativeButton("Chart",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                Intent tab=new Intent(Seating_Engagement.this,Engagement_ViewTable.class);
                                startActivity(tab);
                                finish();


                            }
                        })

                        .create();
                        locationError.show();


                    }



                }
            });


            familywisesummary.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    if(username.equals("null"))
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)
                        .setTitle("Message!")
                        .setPositiveButton(R.string.ok1,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // yes();
                                Intent tablewise = new Intent(Seating_Engagement.this,
                                        LoginForm.class);
                                startActivity(tablewise);
                                finish();


                            }
                        })
                        .setMessage("Registered users can access this page. Click 'Yes' to login")
                        .setNegativeButton(R.string.no,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {


                            }
                        })

                        .create();
                        locationError.show();
                    }
                    else
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)

                        .setPositiveButton("Table",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // yes();
                                Intent tablewise = new Intent(Seating_Engagement.this,
                                        Engagement_Familywisesummary.class);
                                startActivity(tablewise);
                                //finish();


                            }
                        })

                        .setNegativeButton("Chart",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                Intent tab=new Intent(Seating_Engagement.this,Engagement_Familyviewtable.class);
                                startActivity(tab);
                                finish();


                            }
                        })

                        .create();
                        locationError.show();

                    }


                }
            });

            groupwisesummary.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    if(username.equals("null"))
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)
                        .setTitle("Message!")
                        .setPositiveButton(R.string.ok1,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // yes();
                                Intent tablewise = new Intent(Seating_Engagement.this,
                                        LoginForm.class);
                                startActivity(tablewise);
                                finish();


                            }
                        })
                        .setMessage("Registered users can access this page. Click 'Yes' to login")
                        .setNegativeButton(R.string.no,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {


                            }
                        })

                        .create();
                        locationError.show();
                    }
                    else
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)

                        .setPositiveButton("Table",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // yes();
                                Intent tablewise = new Intent(Seating_Engagement.this,
                                        Engagement_Groupwisesummary.class);
                                startActivity(tablewise);
                                //finish();


                            }
                        })

                        .setNegativeButton("Chart",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                Intent tab=new Intent(Seating_Engagement.this,Engagement_Groupviewtable.class);
                                startActivity(tab);
                                finish();


                            }
                        })

                        .create();
                        locationError.show();

                    }


                }
            });

            familywise.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub


                    //  String user_url ="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/tabledisplay.aspx?unme="+username+"&occasion=Engagement";
                    String user_url ="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/version21/seating-table-display.aspx?unme="+username+"&occasion=Engagement";


                    httpclass obj = new httpclass();
                    result = obj.server_conn(user_url);

                    StringTokenizer st = new StringTokenizer(result, "|");
                    result = st.nextToken();

                    //  String user ="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/Notallocated_familywise.aspx?unme="+username+"&occasion=Engagement";

                    String user="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/version21/notallocated_familywise.aspx?unme="+username+"&occasion=Engagement";

                    httpclass objg = new httpclass();
                    nameresult = objg.server_conn(user);

                    StringTokenizer s = new StringTokenizer(nameresult, "|");
                    nameresult = s.nextToken();

                    if(result.equals("There is no table"))
                    {

                        alertbox("Assignment", "None of the table has been created");

                    }
                    else if(nameresult.equals("No Guests"))
                    {

                        alertbox("Assignment", "No Guest invited");

                    }
                    else
                    {
                        boolean netvalue = false;
                        ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);


                        NetworkInfo info = cm.getActiveNetworkInfo();
                        if (info != null && info.isAvailable()) {
                            netvalue = true;
                            Intent tablewise=new Intent(Seating_Engagement.this,Engagement_FamilwiseAllocation.class);  

                            startActivity(tablewise);
                            //  finish();
                        }
                        else
                        {
                            alertbox("Message!", "No Internet Connection!");
                        }
                    }




                }
            });

            groupwise.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub


                    //  String user_url ="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/tabledisplay.aspx?unme="+username+"&occasion=Engagement";

                    String user_url ="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/version21/tabledisplay.aspx?unme="+username+"&occasion=Engagement";

                    httpclass obj = new httpclass();
                    result = obj.server_conn(user_url);

                    StringTokenizer st = new StringTokenizer(result, "|");
                    result = st.nextToken();

                    //  String user ="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/Not_allocated_notfamily.aspx?unme="+username+"&occasion=Engagement";
                    String user="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/version21/Not_allocated_notfamily.aspx?unme="+username+"&occasion=Engagement";


                    httpclass objg = new httpclass();
                    nameresult = objg.server_conn(user);

                    StringTokenizer s = new StringTokenizer(nameresult, "|");
                    nameresult = s.nextToken();         
                    if(result.equals("There is no table"))
                    {

                        alertbox("Summary", "None of the table has been created");

                    }
                    else if(nameresult.equals("No Guests"))
                    {

                        alertbox("Assignment", "No Guest invited");

                    }
                    else
                    {

                        Intent tablewise=new Intent(Seating_Engagement.this,Engagement_GroupWiseAllocation.class);                              
                        startActivity(tablewise);
                        //finish();
                    }


                }
            });

            tablewise.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    if(username.equals("null"))
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)
                        .setTitle("Message!")
                        .setPositiveButton(R.string.ok1,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // yes();
                                Intent tablewise = new Intent(Seating_Engagement.this,
                                        LoginForm.class);
                                startActivity(tablewise);
                                finish();


                            }
                        })
                        .setMessage("Registered users can access this page. Click 'Yes' to login")
                        .setNegativeButton(R.string.no,
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {


                            }
                        })

                        .create();
                        locationError.show();
                    }
                    else
                    {
                        Dialog locationError = new AlertDialog.Builder(
                                Seating_Engagement.this)
                        .setIcon(0)

                        .setPositiveButton("Table",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // yes();
                                Intent tablewise = new Intent(Seating_Engagement.this,
                                        Engagement_TableWiseSummary.class);
                                startActivity(tablewise);
                                //finish();


                            }
                        })

                        .setNegativeButton("Chart",
                                new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                Intent tab=new Intent(Seating_Engagement.this,Engagement_Tableviewtable.class);
                                startActivity(tab);
                                finish();


                            }
                        })

                        .create();
                        locationError.show();
                    }



                }
            });



            arrangementsummary.setOnClickListener(new View.OnClickListener() {

                //@Override
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    // String user_url ="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/tabledisplay.aspx?unme="+username+"&occasion=Engagement";

                    String user_url ="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/version21/tabledisplay.aspx?unme="+username+"&occasion=Engagement";


                    httpclass obj = new httpclass();
                    result = obj.server_conn(user_url);

                    StringTokenizer st = new StringTokenizer(result, "|");
                    result = st.nextToken();


                    if(result.equals("There is no table"))
                    {

                        alertbox("Summary", "None of the table has been created");

                    }
                    else
                    {

                        Intent tablewise=new Intent(Seating_Engagement.this,Engagement_TotalSeatingStatus.class);        
                        startActivity(tablewise);
                        //  finish();
                    }
                }

            });

        }
        protected void alertbox(String title, String mymessage)  
        {  
            new AlertDialog.Builder(this)  
            .setMessage(mymessage)  
            .setTitle(title)  
            .setCancelable(true)  
            .setNeutralButton(android.R.string.ok,  
                    new DialogInterface.OnClickListener() {  
                @Override
                public void onClick(DialogInterface dialog, int whichButton){}  
            })  
            .show();  
        } 
        @Override
        public void onStart() {
            super.onStart();
            // The rest of your onStart() code.
            //  EasyTracker.getInstance(this).activityStart(this);  // Add this method.
        }

        @Override
        public void onStop() {
            super.onStop();
            // The rest of your onStop() code.
            // EasyTracker.getInstance(this).activityStop(this);  // Add this method.
        }

    }

4 个答案:

答案 0 :(得分:0)

您没有正确检查用户名是否为null。这就是你的NPE所在的位置,用户名为null,但你在其上调用“equals()”方法。

将其更改为:

if(username == null){
   (...)
}

答案 1 :(得分:0)

试试这个......

  if (TextUtils.isEmpty(username)) {

        //code here

    } else{

        //code here
    }

   if(username.equals("")){

    Toast.makeText(getApplicationContext(), "Please Enter Username", Toast.LENGTH_SHORT).show();
 }
 else{

     //code here      

 }

答案 2 :(得分:0)

你可以改变(77)Intent tablewise = new Intent(Seating_Engagement.this,LoginForm.class);

Intent tablewise = new Intent(getActivity(),LoginForm.class);

getActivity()startActivity(tablewise);

答案 3 :(得分:0)

final String user= username.getText().toString();

if (user.matches("")) {
    username.setError("Please Enter Name");
}