extends DialogPreference : Dialog « UI « Android






extends DialogPreference

  
//package org.ametro.util;

import android.content.Context;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;

public class BarPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener {
  private static final String androidns = "http://schemas.android.com/apk/res/android";

  private SeekBar mBar;
  private TextView mMessageText, mValueText;

  private String mPostfix;
  private int mDefault = 0;
  private int mMax = 100;
  private int mValue = 0;

  public BarPreference(Context context, AttributeSet attrs) {
    super(context, attrs);
    mPostfix = attrs.getAttributeValue(androidns, "postfix");
    mDefault = attrs.getAttributeIntValue(androidns, "defaultValue", 0);
    mMax = attrs.getAttributeIntValue(androidns, "max", 100);
  }

  public void onProgressChanged(SeekBar seek, int value, boolean fromTouch) {
    String valueText = String.valueOf(value);
    mValueText.setText(mPostfix == null ? valueText : valueText + mPostfix);
    if (shouldPersist()){
      persistInt(value);
    }
    callChangeListener(new Integer(value));
  }

  public void onStartTrackingTouch(SeekBar seek) {
  }

  public void onStopTrackingTouch(SeekBar seek) {
  }
  
  protected View onCreateDialogView() {
    LinearLayout container = new LinearLayout(getContext());
    container.setOrientation(LinearLayout.VERTICAL);
    container.setPadding(10, 5, 10, 5);

    mMessageText = new TextView(getContext());
    mMessageText.setText(getSummary());
    container.addView(mMessageText);

    mValueText = new TextView(getContext());
    mValueText.setGravity(Gravity.CENTER_HORIZONTAL);
    container.addView(mValueText, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));

    mBar = new SeekBar(getContext());
    mBar.setOnSeekBarChangeListener(this);
    mBar.setPadding(5, 0, 5, 0);
    container.addView(mBar, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
    

    if (shouldPersist()){
      mValue = getPersistedInt(mDefault);
    }

    mBar.setMax(mMax);
    mBar.setProgress(mValue);
    return container;
  }

  protected void onBindDialogView(View v) {
    super.onBindDialogView(v);
    mBar.setMax(mMax);
    mBar.setProgress(mValue);
  }

  protected void onSetInitialValue(boolean restore, Object defaultValue) {
    super.onSetInitialValue(restore, defaultValue);
    if (restore)
      mValue = shouldPersist() ? getPersistedInt(mDefault) : 0;
    else
      mValue = (Integer) defaultValue;
  }    
}

   
    
  








Related examples in the same category

1.Dialog Helper
2.Use AlertDialog to inform exception
3.Add option item to Alert dialog and get user selection result
4.Add some padding to keep the dialog borders away
5.Dialog activity and TextView
6.Preference dialog
7.Show dialog
8.Dialog layout
9.Layout dialog with xml layout file
10.extends DialogFragment
11.Color Picker Dialog
12.Dialog Yes No Message
13.Dialog Yes No Old School Message
14.Dialog Yes No Holo Light Message
15.Dialog Yes No Long Message
16.Dialog Yes No Ultra Long Message
17.Dialog with List of value
18.Dialog with Progress
19.Dialog with Single Choice
20.Dialog Multiple Choice
21.Dialog Multiple Choice Cursor
22.Dialog with Text Entry
23.Dialog with Xml layout
24.Dialog Activity
25.Demonstrates how to show an AlertDialog that is managed by a Fragment.
26.Fragment Dialog
27.Demonstrates the use of progress dialogs.
28.File open dialog
29.Show error AlertDialog
30.Show Notification Alert Dialog
31.Text Dialog
32.Create Chang Log Dialog
33.Show Title And Message Dialog
34.Show dialog and parse URL
35.Error Dialog Wrapper
36.Ok Dialog Wrapper
37.Display an alert dialog
38.AlertDialog Question
39.import android.app.AlertDialog;
40.dialog Builder
41.A dialog that allows the user to select multiple entries.
42.Help Dialog Creator
43.Color Select Dialog
44.Create MessageBox