我開始一個活動(通過意向,我給它putExtra(字符串):紅,黃,綠或藍)點擊「右」按鈕後,應用程序停止
currentColor有顏色我不不想被點擊。
我有4個按鈕(我從源刪除它,因爲我不認爲你需要它)。
public class ColorChooser extends Activity implements android.view.View.OnClickListener {
String currentColor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Choose a color");
setContentView(R.layout.color_chooser);
setFinishOnTouchOutside(false);
currentColor = getIntent().getExtras().getString("CurrentColor");
}
@Override
public void onBackPressed() {
}
@Override
public void onClick(View v) {
Intent returnIntent = new Intent();
String picked = "";
boolean ok = true;
while(ok) {
switch (v.getId()) {
case R.id.btnRed:
picked = "RED";
break;
case R.id.btnYellow:
picked = "YELLOW";
break;
case R.id.btnGreen:
picked = "GREEN";
break;
case R.id.btnBlue:
picked = "BLUE";
break;
}
if(picked.equals(currentColor)){
Toast.makeText(getApplicationContext(), "Choose other color please", Toast.LENGTH_LONG).show();
} else {
returnIntent.putExtra("Color", picked);
ok = false;
}
}
setResult(RESULT_OK, returnIntent);
finish();
}
}
在我的清單我有這個。所以它顯示爲一個對話框。我必須選擇一種顏色。現在
<activity
android:name=".ColorChooser"
android:theme="@android:style/Theme.Dialog"
/>
我的問題是:如果我選擇一種顏色,多數民衆贊成= currentColor,其優良的!但是,如果我選擇與currentColor相同的顏色,該應用會停止。應用中的按鈕顯示爲點擊(黃色)。 我認爲這是因爲我用了。我不知道我能做到這一點,我應該選擇一種顏色,直到它!= currentColor
05-21 18:33:09.782 1873-1873/com.example.thm_wip1.uno E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at com.example.thm_wip1.uno.Deck.<init>(Deck.java:25)
at com.example.thm_wip1.uno.MultiplayerActivity.onCreate(MultiplayerActivity.java:52)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
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:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.example.thm_wip1.uno.CardValue.<clinit>(CardValue.java:13)
at com.example.thm_wip1.uno.Deck.<init>(Deck.java:25)
at com.example.thm_wip1.uno.MultiplayerActivity.onCreate(MultiplayerActivity.java:52)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
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:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
hmm。但是,如果它是相同的顏色,我應該選擇一個新的顏色,直到它!= currentColor –