2013-11-09 40 views
1

如果已经查看,我有问题可以显示烤面包而不是其他面包。我有两个活动,在第一活动吐司显示和我有这样的代码:Android:无法显示烤面包

@Override 
protected void onCreate(Bundle savedInstanceState) { 
// TODO Auto-generated method stub 
super.onCreate(savedInstanceState); 
setContentView(R.layout.q_050); 
String str = getIntent().getStringExtra("sent"); 
// at this line--> if(str.equals("activity_two")){ 
    Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.app_name), Toast.LENGTH_SHORT).show(); 
} 
else{ 
    Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.checkpoint), Toast.LENGTH_SHORT).show(); 
} 

在后退按钮第二活动我包括这样的:

Button b3 = (Button)findViewById(R.id.b3); 
       b3.setOnClickListener(new Button.OnClickListener() { 
         public void onClick(View v){ 

          Intent myIntentActivity1 = new Intent(Q_051.this,Q_050.class); 
          myIntentActivity1.putExtra("sent", "activity_two"); 
          startActivity(myIntentActivity1); 

和logcat的问题是此:

11-09 16:29:51.920: E/AndroidRuntime(1510): FATAL EXCEPTION: main 
11-09 16:29:51.920: E/AndroidRuntime(1510): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.quizcelebrita/org.quizcelebrita.Q_050}: java.lang.NullPointerException 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.app.ActivityThread.access$600(ActivityThread.java:140) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.os.Looper.loop(Looper.java:137) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.app.ActivityThread.main(ActivityThread.java:4898) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at java.lang.reflect.Method.invoke(Method.java:511) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at dalvik.system.NativeStart.main(Native Method) 
11-09 16:29:51.920: E/AndroidRuntime(1510): Caused by: java.lang.NullPointerException 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at org.quizcelebrita.Q_050.onCreate(Q_050.java:32) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.app.Activity.performCreate(Activity.java:5206) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064) 
11-09 16:29:51.920: E/AndroidRuntime(1510):  ... 11 more 

在检测到问题的线路是这样的:

if(str.equals("activity_two")){ 

回答

2

变化

Bundle value = getIntent().getExtras(); 
String str= value.getString("sent").toString(); 

String str = getIntent().getStringExtra("sent"); 

也,在Java字符串比较应通过equals方法

if(str.equals("activity_two")) 
+0

谢谢你现在的作品,但它总是显示相同的消息:( – Gioele

+0

你有没有改变if条件,因为我提到过吗? – Blackbelt

+0

这最后一行给出我在日志中的问题 – Gioele

0

你在,如果条件得到一个空指针异常进行你提到了 尝试调试你的应用程序,并在这一行放置一个断点: -

String str = getIntent().getStringExtra("sent"); 

检查str是否获得任何值。我猜它没有收到任何字符串,所以这就是为什么它显示空指针异常