Android:在启动应用程序之前检查密码

时间:2012-11-08 12:02:36

标签: java android fatal-error

我正在创建一个简单的Android应用程序,其中第一个屏幕将向我们显示EditText和Button,在EditText中输入“1234”(不包括引号)然后单击Button,应用程序将转移控件另一项活动。

以下是代码的一部分:

final EditText enterPass;
Button submit;
enterPass = (EditText) findViewById(R.id.password);
submit = (Button) findViewById(R.id.submit);
    submit.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String pass = enterPass.getText().toString();
            if(pass.contentEquals("1234")){
                Intent adder = new Intent("com.example.pointsadder.Adder");
                  startActivity(adder); 
            }
        }
    });

Eclipse根本没有在项目的任何部分显示任何错误,但是当我运行项目时,输入“1234”并单击“提交”,我收到消息:“抱歉。应用程序com .example.adder意外地......“

编辑:这是DDMS的日志报告:

    [2012-11-08 15:27:52 - ddms] null
java.lang.NullPointerException
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:575)
    at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)
    at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)
    at com.android.ddmlib.Client.getJdwpPacket(Client.java:672)
    at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

4 个答案:

答案 0 :(得分:2)

您可以发布日志输出吗?我要尝试的第一件事就是将pass.contentEquals("1234")改为pass.equals("1234") 还试试:

Intent adder = new Intent(Password.this, Adder.class);

答案 1 :(得分:0)

你应该试试这个:

if(pass.equals("1234")){
    Intent adder = new Intent("com.example.pointsadder.Adder");
    startActivity(adder);
}

或者,如果您使用不区分大小写的密码,则可以将.equals替换为.equalsIgnoreCase

另外,你应该像这样声明你的意图:

Intent adder = new Intent(Password.this, Adder.class);
startActivity(adder);

答案 2 :(得分:0)

You should try this:   

 final EditText enterPass;
    Button submit;
    enterPass = (EditText) findViewById(R.id.password);
    submit = (Button) findViewById(R.id.submit);
        submit.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String pass = enterPass.getText().toString().trim();
                if(pass.equals("1234")){
                    Intent adder = new Intent(PresentActivity.this,SecondActivity.class);
                      startActivity(adder); 
                }
            }
        });

并且不要忘记在清单文件中提到SecondActivity

答案 3 :(得分:0)

试试这个

pass.equalsIgnoreCase("1234");

这可能有用。 同时用下面的

更改意图syntex
Intent adder = new Intent(*currentActivity*.this,Adder.class);
startActivity(adder);

manifest 文件中添加Adder活动。