package com.joyplus.joylink; import android.app.AlertDialog.Builder; import android.content.Context; import android.preference.DialogPreference; import android.util.AttributeSet; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.SeekBar; import com.wind.s1mobile.common.S1Constant; public class SeekBarPreference extends DialogPreference { private Context context; private SeekBar sensitivityLevel = null; private LinearLayout layout = null; private String title; public ControlSetting mSettings; public SeekBarPreference(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; persistInt(10); title = getDialogTitle().toString(); } public void setSettings(ControlSetting settings) { mSettings = settings; } protected void onPrepareDialogBuilder(Builder builder) { // Log.i("jinlujiao", "onPrepareDialogBuilder:"+mRate); // ��Ӳ��� System.out.println("onPrepareDialogBuilder()"); layout = new LinearLayout(context); layout.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); // �������� layout.setMinimumWidth(400); // ���ֵ���С��� layout.setPadding(20, 20, 20, 20); // �������ҵ�Padding // ���SeekBar sensitivityLevel = new SeekBar(context); sensitivityLevel.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); // SeekBar�IJ������� // String mode ="@"+String.valueOf(R.string.mouseSpeed); String mode = context.getString(R.string.mouseSpeed); // if ("Mouse Speed".equals(title)) { if (mode.equals(title)) { System.out.println("modetitle():" + getPersistedInt(S1Constant.MOUSE_SPEED_DEFAULT)); sensitivityLevel.setMax(S1Constant.MOUSE_SPEED_MAX); // ���ֵ sensitivityLevel .setProgress(getPersistedInt(S1Constant.MOUSE_SPEED_DEFAULT)); // ����Ĭ��ֵ } else { System.out.println("!modetitle():" + getPersistedInt(S1Constant.SENSOR_SPEED_DEFAULT)); sensitivityLevel.setMax(S1Constant.SENSOR_SPEED_MAX); // ���ֵ sensitivityLevel .setProgress(getPersistedInt(S1Constant.SENSOR_SPEED_DEFAULT)); // ����Ĭ��ֵ } System.out.println("getProgress():" + sensitivityLevel.getProgress()); // Log.i("jinlujiao", // "onPrepareDialogBuilde--setSeekBarProgressr:"+mRate); layout.addView(sensitivityLevel); // ��SeekBar�ӵ� layout�IJ����� builder.setView(layout); } protected void onDialogClosed(boolean positiveResult) { if (positiveResult) { String mode = context.getString(R.string.mouseSpeed); persistInt(sensitivityLevel.getProgress()); // ����SeekBar��ֵ if (!mode.equals(title)) { // if (!"Mouse Speed".equals(title)) { mSettings.onSensorSpeedChange(S1Constant.SENSOR_SPEED_MAX - sensitivityLevel.getProgress()); } // Log.i("jinlujiao", // "onDialogClosed:"+sensitivityLevel.getProgress()); } super.onDialogClosed(positiveResult); } }