0

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

这是代码的一部分:

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

4 回答 4

2

你能发布你的日志输出吗?我要尝试的第一件事就是更改pass.contentEquals("1234")pass.equals("1234") Also try :

Intent adder = new Intent(Password.this, Adder.class);
于 2012-11-08T12:06:12.377 回答
0

你应该试试这个:

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

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

此外,您应该像这样声明您的 Intent:

Intent adder = new Intent(Password.this, Adder.class);
startActivity(adder);
于 2012-11-08T12:07:33.040 回答
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); 
                }
            }
        });

并且不要忘记在 Manifest 文件中提及 SecondActivity

于 2012-11-08T12:13:30.600 回答
0

试试这个

pass.equalsIgnoreCase("1234");

这可能有效。也用下面的改变意图语法

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

还在manifest文件中添加 Adder 活动。

于 2012-11-08T12:13:55.060 回答