2012-11-08 26 views
0

我正在創建一個簡單的Android應用程序,在EditText中輸入「1234」(引號不包括在內)時,第一個屏幕會顯示EditText和Button,然後單擊按鈕,應用程序會將控制轉移到另一個活動。Android:在啓動應用程序之前檢查密碼

下面是部分代碼:

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) 

回答

3

你能發佈你的日誌輸出嗎?第一件事,我會嘗試在改變pass.contentEquals("1234")只是pass.equals("1234") 搜索:

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

我是Android開發新手,不知道在哪裏可以找到日誌。你可以給我一些指示,在哪裏可以找到它? – user221287

+0

切換到pass.equals(「1234」)也不起作用,還有什麼可能是錯誤的? – user221287

+1

檢查「logcat」選項卡的DDMS視圖。你應該會看到某種拋出的異常。是AndroidManifest.xml中列出的「其他活動」? –

1

你應該試試這個:

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); 
+0

更改意圖的事情工作,但這是我在以前的應用程序,它沒有給任何麻煩。怎麼了。你能給我多一點這方面的信息嗎? – user221287

+0

該應用程序將從背景圖像和背景音樂開始,等待某個時間並使用意圖開始下一個活動。我不確定使用的try和catch語句,因爲這來自我用來學習的教程。這裏是代碼:http:// imgur。com/MAASm – user221287

1
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清單文件

+0

更改Intent的工作,但這是我在以前的應用程序,它沒有給任何麻煩。怎麼了。你能給我多一點這方面的信息嗎? – user221287

1

試試這個

pass.equalsIgnoreCase("1234"); 

這可能工作。 也改變原意了Syntex下面

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

而且在manifest文件添加加法活動。

+0

改變意圖的事情工作,但這是我在以前的應用程序,它沒有給任何麻煩。怎麼了。你能給我多一點這方面的信息嗎? – user221287

相關問題