forked from upstream-mirrors/OpenTracks
Added autocomplete to 'Default Activity Type' field.
This commit is contained in:
@@ -152,7 +152,7 @@ limitations under the License.
|
|||||||
android:summaryOff="@string/settings_timestamp_track_name_summary_off"
|
android:summaryOff="@string/settings_timestamp_track_name_summary_off"
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
|
||||||
<EditTextPreference
|
<com.google.android.apps.mytracks.AutoCompleteTextPreference
|
||||||
android:key="@string/default_category_key"
|
android:key="@string/default_category_key"
|
||||||
android:title="@string/settings_default_category"
|
android:title="@string/settings_default_category"
|
||||||
android:summary="@string/settings_default_category_summary"
|
android:summary="@string/settings_default_category_summary"
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.preference.EditTextPreference;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ViewParent;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.AutoCompleteTextView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link AutoCompleteTextPreference} class is a preference that allows for
|
||||||
|
* string input using auto complete . It is a subclass of
|
||||||
|
* {@link EditTextPreference} and shows the {@link AutoCompleteTextView} in a
|
||||||
|
* dialog.
|
||||||
|
* <p>
|
||||||
|
* This preference will store a string into the SharedPreferences.
|
||||||
|
*
|
||||||
|
* @author Rimas Trumpa (with Matt Levan)
|
||||||
|
*/
|
||||||
|
public class AutoCompleteTextPreference extends EditTextPreference {
|
||||||
|
|
||||||
|
private static AutoCompleteTextView mEditText = null;
|
||||||
|
|
||||||
|
public AutoCompleteTextPreference(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
mEditText = new AutoCompleteTextView(context, attrs);
|
||||||
|
mEditText.setThreshold(0);
|
||||||
|
|
||||||
|
// Gets autocomplete values for 'Default Activity' preference
|
||||||
|
if (getKey().equals(context.getString(R.string.default_category_key))) {
|
||||||
|
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(context,
|
||||||
|
R.array.activity_types, android.R.layout.simple_dropdown_item_1line);
|
||||||
|
mEditText.setAdapter(adapter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onBindDialogView(View view) {
|
||||||
|
AutoCompleteTextView editText = mEditText;
|
||||||
|
editText.setText(getText());
|
||||||
|
|
||||||
|
ViewParent oldParent = editText.getParent();
|
||||||
|
if (oldParent != view) {
|
||||||
|
if (oldParent != null) {
|
||||||
|
((ViewGroup) oldParent).removeView(editText);
|
||||||
|
}
|
||||||
|
onAddEditTextToDialogView(view, editText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDialogClosed(boolean positiveResult) {
|
||||||
|
if (positiveResult) {
|
||||||
|
String value = mEditText.getText().toString();
|
||||||
|
if (callChangeListener(value)) {
|
||||||
|
setText(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user