package cn.walcl.ulauncher.settings; import java.util.List; import cn.walcl.ulauncher.actions.LauncherActions; import cn.walcl.ulauncher.actions.LauncherActions.Action; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.DialogInterface.OnClickListener; import android.preference.DialogPreference; import android.util.AttributeSet; import android.widget.ListAdapter; public class LauncherActionPreference extends DialogPreference { public LauncherActionPreference(Context context ,AttributeSet attrs) { super(context, attrs); init(); } private void init() { List<Action> actions = LauncherActions.getInstance().getList(); CharSequence[] titles = new CharSequence[actions.size()]; CharSequence[] values = new CharSequence[actions.size()]; for(int i = 0; i < actions.size(); i++) { titles[i] = actions.get(i).getName(); values[i] = String.valueOf(i); } // this.setEntries(titles); // this.setEntryValues(values); } @Override protected void onClick() { AlertDialog.Builder builder = new Builder(getContext()); builder.setTitle(this.getTitle()); final ListAdapter adapter = LauncherActions.getInstance().getSelectActionAdapter(); builder.setAdapter(adapter, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Action act = (Action)adapter.getItem(which); Intent intent = LauncherActions.getInstance().getIntentForAction(act); String sIntent = intent.toUri(0).toString(); persistString(sIntent); } }); builder.create().show(); } }