Android, SeekBar in dialog

后端 未结 4 1896
自闭症患者
自闭症患者 2020-12-30 11:28

I would like to use a dialog with a seekbar in my application. But I don\'t really know how to do it because I lack experience with android.

So, when you press a but

相关标签:
4条回答
  • Create a view having edittext. use setView() method of AlertBuilder to set the view.

    mytest.xml

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <EditText
            android:id="@+id/textview1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
    
            android:textColor="#000000"
            android:hint="8+ characters"
            android:maxLines="1"
            android:maxLength="18"
            android:imeOptions="actionSend|flagNoEnterAction" />
    
    </RelativeLayout>
    
    
    
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setView(entryView);
        builder.setMessage("Are you sure you want to exit?")
                .setCancelable(false)
               .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                        MyActivity.this.finish();
               }
           })
           .setNegativeButton("No", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
               }
           });
        AlertDialog alert = builder.create();
    
    0 讨论(0)
  • 2020-12-30 11:40

    This is the code on how to put seekbar in alertdialog: check this link.

    public void ShowDialog(){
     final AlertDialog.Builder popDialog = new AlertDialog.Builder(this);
     final SeekBar seek = new SeekBar(this);
     seek.setMax(255);
     seek.setKeyProgressIncrement(1);
    
     popDialog.setIcon(android.R.drawable.btn_star_big_on);
    popDialog.setTitle("Please Select Into Your Desired Brightness ");
     popDialog.setView(seek);
    
    
       seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    
    
    
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
    
    
     txtView.setText("Value of : " + progress);
     }
    

    HAPPY CODING!

    0 讨论(0)
  • 2020-12-30 11:58

    Maybe you could think of create a custom dialog; it requires more work but it usually works for me ;) Create a new layout file for your dialog (say, your_dialog.xml):

    <RelativeLayout
    android:id="@+id/your_dialog_root_element"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
    
    <SeekBar
        android:id="@+id/your_dialog_seekbar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
    </SeekBar>
    
    <Button
        android:id="@+id/your_dialog_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
    </Button>
    

    Then, in your activity:

    Dialog yourDialog = new Dialog(this);
    LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
    View layout = inflater.inflate(R.layout.your_dialog, (ViewGroup)findViewById(R.id.your_dialog_root_element));
    yourDialog.setContentView(layout);
    

    Thus, you can operate on your element as follows:

    Button yourDialogButton = (Button)layout.findViewById(R.id.your_dialog_button);
    SeekBar yourDialogSeekBar = (SeekBar)layout.findViewById(R.id.your_dialog_seekbar);
    // ...
    

    and so on, to set listeners for button and seekbar.

    EDIT: The seekbar onchangelistener should be as follows:

    OnSeekBarChangeListener yourSeekBarListener = new OnSeekBarChangeListener() {
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
                //add code here
        }
    
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
                //add code here
        }
    
        @Override
        public void onProgressChanged(SeekBar seekBark, int progress, boolean fromUser) {
                //add code here
        }
     };
     yourDialogSeekBar.setOnSeekBarChangeListener(yourSeekBarListener);
    
    0 讨论(0)
  • 2020-12-30 11:58

    I hope this will help you. Try this Code...

    final AlertDialog.Builder alert = new AlertDialog.Builder(this); 
    
        alert.setTitle("Alert Box"); 
        alert.setMessage("Edit Text"); 
    
        LinearLayout linear=new LinearLayout(this); 
    
        linear.setOrientation(1); 
        TextView text=new TextView(this); 
        text.setText("Hello Android"); 
        text.setPadding(10, 10, 10, 10); 
    
        SeekBar seek=new SeekBar(this); 
    
        linear.addView(seek); 
        linear.addView(text); 
    
        alert.setView(linear); 
    
    
    
        alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() 
        { 
            public void onClick(DialogInterface dialog,int id)  
            { 
                Toast.makeText(getApplicationContext(), "OK Pressed",Toast.LENGTH_LONG).show(); 
                finish(); 
            } 
        }); 
    
        alert.setNegativeButton("Cancel",new DialogInterface.OnClickListener()  
        { 
            public void onClick(DialogInterface dialog,int id)  
            { 
                Toast.makeText(getApplicationContext(), "Cancel Pressed",Toast.LENGTH_LONG).show(); 
                finish(); 
            } 
        }); 
    
        alert.show(); 
    
    0 讨论(0)
提交回复
热议问题