Для того, чтобы отключить элементы списка при создании списка, вы должны подкласс ArrayAdapter. Вы должны переопределить следующие методы: isEnabled (int position) и areAllItemsEnabled(). В прежнем вы возвращаете true или false в зависимости от того, включен ли элемент списка в заданной позиции или нет. В последнем вы возвращаете false.
Если вы хотите использовать createFromResource(), вам также придется реализовать этот метод, так как ArrayAdapter.createFromResource() все еще создает ArrayAdapter вместо вашего собственного адаптера.
Наконец, код будет выглядеть примерно следующее:
class MenuAdapter extends ArrayAdapter<CharSequence> {
public MenuAdapter(
Context context, int textViewResId, CharSequence[] strings) {
super(context, textViewResId, strings);
}
public static MenuAdapter createFromResource(
Context context, int textArrayResId, int textViewResId) {
Resources resources = context.getResources();
CharSequence[] strings = resources.getTextArray(textArrayResId);
return new MenuAdapter(context, textViewResId, strings);
}
public boolean areAllItemsEnabled() {
return false;
}
public boolean isEnabled(int position) {
// return false if position == position you want to disable
}
}
MenuAdapter является .Net, я прав? В этом случае это не работает для меня. Я создал приложение без использования .Net. Я не хочу использовать никаких зависимостей. Я использовал собственные API Windows – kampi