Подскажите, пожалуйста, как мне первые 10 кнопок сделать неактивными
Код: Выделить всё
for (int i=1; i <= 10; i++){
String namebutton = "level_" + Integer.toString(i);
namebutton.setEnabled(false);
}
Код: Выделить всё
for (int i=1; i <= 10; i++){
String namebutton = "level_" + Integer.toString(i);
namebutton.setEnabled(false);
}
Ссылку не видел, скиньте, пожалуйста, еще разFoenix писал(а):я тебе ссылку давала, ты ее проигнорировал.
Код: Выделить всё
for (int i=1; i <= Constants.k; i++){
String namebutton = "level_" + Integer.toString(i);
int fullnamebutton = getResources().getIdentifier(namebutton, "drawable", getPackageName());
fullnamebutton.setEnabled(false);
}
20 однотипных статичных переменных? Мде... на скорость не повлияет, но качество и читабельность программы упадет.no-- писал(а):А можно поинтересоваться, зачем 20 кнопок? Если это калькулятор, то что мешает по ID к ним обратиться? Или они созданы динамически? Если да, то что мешало создать статически? =)
Код: Выделить всё
Context mContext = getActivity().getBaseContext() ;
for (int position = 1; position < idOfButtons.length; position++) {
if (position < Integer.parseInt(savedText)){
Integer btnId = mRes.getIdentifier(idOfButtons[position], "id", mContext.getPackageName());
Button btn = (Button) findViewById(btnId);
btn.setBackgroundColor(Color.BLUE);
}
}
Код: Выделить всё
Resources mRes;
String[] idOfButtons;
Код: Выделить всё
idOfButtons = new String [Constants.k + 1];
idOfButtons[1] = "level_1";
idOfButtons[2] = "level_2";
idOfButtons[3] = "level_3";
idOfButtons[4] = "level_4";
idOfButtons[5] = "level_5";
idOfButtons[6] = "level_6";
idOfButtons[7] = "level_7";
idOfButtons[8] = "level_8";
idOfButtons[9] = "level_9";
idOfButtons[10] = "level_10";
idOfButtons[11] = "level_11";
idOfButtons[12] = "level_12";
idOfButtons[13] = "level_13";
idOfButtons[14] = "level_14";
idOfButtons[15] = "level_15";
idOfButtons[16] = "level_16";
idOfButtons[17] = "level_17";
idOfButtons[18] = "level_18";
idOfButtons[19] = "level_19";
idOfButtons[20] = "level_20";
for (int position = 1; position <= Constants.k; position++) {
if (position <= Integer.parseInt(savedText)){
Integer btnId = mRes.getIdentifier(idOfButtons[position], "id", (this).getBaseContext().getPackageName());
Button btn = (Button) findViewById(btnId);
btn.setBackgroundColor(Color.BLUE);
}
}
Код: Выделить всё
for (int position = 1; position <= Constants.k; position++) {
if (position <= Integer.parseInt(savedText)){
//Integer btnId = mRes.getIdentifier(idOfButtons[position], "id", (this).getBaseContext().getPackageName());
//Button btn = (Button) findViewById(btnId);
//btn.setBackgroundColor(Color.BLUE);
}
}
Код: Выделить всё
for (int position = 1; position <= Constants.k; position++) {
if (position <= Integer.parseInt(savedText)){
Integer btnId = mRes.getIdentifier(idOfButtons[position], "id", (this).getBaseContext().getPackageName());
//Button btn = (Button) findViewById(btnId);
//btn.setBackgroundColor(Color.BLUE);
}
}
Код: Выделить всё
08-24 15:03:53.142: ERROR/AndroidRuntime(1781): FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.kros/com.example.kros.LevelActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
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.kros.LevelActivity.onCreate(LevelActivity.java:125)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
... 11 more
у тебя это соответственно строчка в логеFoenix писал(а):NPE самая легкая ошибка.
Смотри.
находишь в логе вот такую строчку после строки Caused by:
с адресом в ТВОЕЙ программе, т.е.
at com.example.p0421_simplelist.MainActivity.onCreate(MainActivity.java:26)
щелкаешь сюда 2 раза мышью, и переносишься в код. На этой строке у тебя ИСПОЛЬЗУЕТСЯ переменная, которая не инициализировалась (не создана). А теперь смотришь в код выше данной строки, где она создается.
Там и ошибка. или адрес неверный (например, ресурс xml не найден) или вообще она нигде у тебя не создается, зато используется потом.
Попробуй сам найти.
Код: Выделить всё
Integer btnId = mRes.getIdentifier("level_17", "id", (this).getBaseContext().getPackageName());
Код: Выделить всё
Resources mRes;
Код: Выделить всё
(this).getBaseContext().getPackageName()