Thang PhamVan
Thang PhamVan

Reputation: 39

Click button show seekbar dialog to change textview textsize android

I want to change size of the TextView when clicked on a button which inturn calls popup seekbar dialog.

See picture for clarity.

enter image description here

I searched in How do I put a seek bar in an alert dialog? and Show progress of seekbar in a textview inside a custom alert dialog to find solutions, and this is my code:

btn_font.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View layout = inflater.inflate(R.layout.dialog_change_fontsize,
                        (ViewGroup) findViewById(R.id.layout_viewdetailcontent));
                AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ViewDetailActivity.this)
                        .setView(layout);
                final SeekBar sb = (SeekBar) layout.findViewById(R.id.seekBar1);
                sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                    public void onProgressChanged(SeekBar seekBar,
                            int progress, boolean fromUser) {
                        // Do something here with new value
                        p = progress;
                        tv_content.setTextSize(p);
                    }

                    @Override
                    public void onStartTrackingTouch(SeekBar arg0) {
                        // TODO Auto-generated method stub
                        p = 16;
                        tv_content.setTextSize(p);

                    }

                    @Override
                    public void onStopTrackingTouch(SeekBar arg0) {
                        // TODO Auto-generated method stub
                        if (p < 16) {
                            p = 16;
                            sb.setProgress(p);
                        }
                        Toast.makeText(getBaseContext(), String.valueOf(p),
                                Toast.LENGTH_SHORT).show();
                    }
                });

                AlertDialog alertDialog = alertDialogBuilder.create();
                alertDialog.show();

            }
        });

But is not working. Please help me find what i am doing wrong. Thanks in advance.

Upvotes: 2

Views: 1071

Answers (1)

user8737697
user8737697

Reputation:

    button = findViewById(R.id.btn);
    txt = findViewById(R.id.Tv);
    txt.setText("Thank you, This is John Puwein");
    txt.setTextSize(10);
    txt.setGravity(Gravity.CENTER);
    button.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                AlertDialog.Builder ADB = new AlertDialog.Builder(context);
                SeekBar seekbar = new SeekBar(context);
                seekbar.setMin(10);
                seekbar.setMax(100);
                seekbar.setKeyProgressIncrement(1);
                seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
                    {
                        int i = 0;
                        @Override
                        public void onProgressChanged(SeekBar sb2, int intger, boolean id)
                        {
                            i = intger;
                            txt.setTextSize(i);
                        }

                        @Override
                        public void onStartTrackingTouch(SeekBar sb)
                        {
                            Toast.makeText(getApplicationContext(), "" + i, Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onStopTrackingTouch(SeekBar sb)
                        {
                            sb.setProgress(i);
                        }
                    });
                ADB.setView(seekbar);
                ADB.show();
            }
        });

Upvotes: 1

Related Questions