package dentex.youtube.downloader; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; /* class DashboardLongClickAdapter adapted from Stack Overflow: * * http://stackoverflow.com/questions/11300381/disabled-listitems-in-alertdialog-does-not-show-up-as-grayed-out-items * * Q: http://stackoverflow.com/users/1497029/mrinal * A: none, as of 2013-07-20 */ public class DashboardLongClickAdapter extends ArrayAdapter<CharSequence> { static int[] disabledOptions; private DashboardLongClickAdapter(Context context, int textViewResId, CharSequence[] strings, int[] disabledOptions) { super(context, textViewResId, strings); DashboardLongClickAdapter.disabledOptions = disabledOptions; } public static DashboardLongClickAdapter createFromResource( Context context, int textArrayResId, int textViewResId, int[] disabledOptions) { CharSequence[] strings = context.getResources().getTextArray(textArrayResId); return new DashboardLongClickAdapter(context, textViewResId, strings, disabledOptions); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); view.setEnabled(isEnabled(position)); return view; } @Override public boolean areAllItemsEnabled() { return false; } @Override public boolean isEnabled(int position) { if (disabledOptions != null) { for (int i = 0; i < disabledOptions.length; i++) { if (position == disabledOptions[i]) return false; } } return true; } }