Add HiddenTopArrayAdapter

pull/384/head
Alex Baker 9 years ago
parent 39df51dd44
commit fb56ac9a4a

@ -10,7 +10,6 @@ import android.graphics.Paint;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
@ -34,6 +33,7 @@ import org.tasks.location.PlacePicker;
import org.tasks.preferences.PermissionRequestor;
import org.tasks.preferences.Preferences;
import org.tasks.time.DateTime;
import org.tasks.ui.HiddenTopArrayAdapter;
import java.util.ArrayList;
import java.util.LinkedHashSet;
@ -197,30 +197,8 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
});
addSpinner = (Spinner) getView().findViewById(R.id.alarms_add_spinner);
addSpinner.setOnItemSelectedListener(ReminderControlSet.this);
remindAdapter = new ArrayAdapter<String>(activity, android.R.layout.simple_spinner_item, spinnerOptions) {
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View v;
// If this is the initial dummy entry, make it hidden
if (position == 0) {
TextView tv = new TextView(getContext());
tv.setHeight(0);
tv.setVisibility(View.GONE);
v = tv;
}
else {
// Pass convertView as null to prevent reuse of special case views
v = super.getDropDownView(position, null, parent);
}
// Hide scroll bar because it appears sometimes unnecessarily, this does not prevent scrolling
parent.setVerticalScrollBarEnabled(false);
return v;
}
};
remindAdapter = new HiddenTopArrayAdapter(activity, android.R.layout.simple_spinner_item, spinnerOptions);
addSpinner.setAdapter(remindAdapter);
remindAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
modeDisplay = (TextView) getView().findViewById(R.id.reminder_alarm_display);
mode = (Spinner) getView().findViewById(R.id.reminder_alarm);
modeDisplay.setOnClickListener(new OnClickListener() {

@ -171,7 +171,7 @@ public class DeadlineControlSet extends TaskEditControlSetBase {
}
});
dueDateSpinner = (Spinner) view.findViewById(R.id.due_date);
dueDateAdapter = new ArrayAdapter<String>(activity, android.R.layout.simple_spinner_item, dueDateOptions) {
dueDateAdapter = new HiddenTopArrayAdapter(activity, android.R.layout.simple_spinner_item, dueDateOptions) {
@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {
int selectedItemPosition = position;
@ -195,31 +195,11 @@ public class DeadlineControlSet extends TaskEditControlSetBase {
}
return tv;
}
@Override
public View getDropDownView(final int position, final View convertView, final ViewGroup parent) {
View v;
if (position == 0) {
TextView tv = new TextView(getContext());
tv.setHeight(0);
tv.setVisibility(View.GONE);
v = tv;
} else {
TextView tv = (TextView) LayoutInflater.from(activity).inflate(android.R.layout.simple_spinner_dropdown_item, parent, false);
tv.setText(dueDateOptions.get(position));
tv.setTextColor(themeColor);
v = tv;
}
parent.setVerticalScrollBarEnabled(false);
return v;
}
};
dueDateSpinner.setAdapter(dueDateAdapter);
dueTimeSpinner = (Spinner) view.findViewById(R.id.due_time);
dueTimeAdapter = new ArrayAdapter<String>(activity, android.R.layout.simple_spinner_item, dueTimeOptions) {
dueTimeAdapter = new HiddenTopArrayAdapter(activity, android.R.layout.simple_spinner_item, dueTimeOptions, dueTimeHint) {
@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {
int selectedItemPosition = position;
@ -243,28 +223,6 @@ public class DeadlineControlSet extends TaskEditControlSetBase {
}
return tv;
}
@Override
public View getDropDownView(final int position, final View convertView, final ViewGroup parent) {
View v;
if (position == 0) {
TextView tv = new TextView(getContext());
tv.setHeight(0);
tv.setVisibility(View.GONE);
v = tv;
} else {
ViewGroup vg = (ViewGroup) LayoutInflater.from(activity).inflate(R.layout.simple_spinner_dropdown_item, parent, false);
((TextView) vg.findViewById(R.id.text1)).setText(dueTimeOptions.get(position));
if (position < dueTimeHint.size()) {
((TextView) vg.findViewById(R.id.text2)).setText(dueTimeHint.get(position));
}
v = vg;
}
parent.setVerticalScrollBarEnabled(false);
return v;
}
};
dueTimeSpinner.setAdapter(dueTimeAdapter);

@ -0,0 +1,49 @@
package org.tasks.ui;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import org.tasks.R;
import java.util.ArrayList;
import java.util.List;
public class HiddenTopArrayAdapter extends ArrayAdapter<String> {
private List<String> hints;
public HiddenTopArrayAdapter(Context context, int resources, List<String> objects) {
this(context, resources, objects, new ArrayList<String>());
}
public HiddenTopArrayAdapter(Context context, int resource, List<String> objects, List<String> hints) {
super(context, resource, objects);
this.hints = hints;
}
@Override
public View getDropDownView(final int position, final View convertView, final ViewGroup parent) {
View v;
if (position == 0) {
TextView tv = new TextView(getContext());
tv.setHeight(0);
tv.setVisibility(View.GONE);
v = tv;
} else {
ViewGroup vg = (ViewGroup) LayoutInflater.from(getContext()).inflate(R.layout.simple_spinner_dropdown_item, parent, false);
((TextView) vg.findViewById(R.id.text1)).setText(getItem(position));
if (position < hints.size()) {
((TextView) vg.findViewById(R.id.text2)).setText(hints.get(position));
}
v = vg;
}
parent.setVerticalScrollBarEnabled(false);
return v;
}
}
Loading…
Cancel
Save