2

ポップアップ シークバー ダイアログを呼び出すボタンをクリックすると、TextView のサイズを変更したいと考えています。

明確にするために絵を見てください。

ここに画像の説明を入力

アラート ダイアログにシーク バーを配置するにはどうすればよいですか? で検索しました。カスタムアラートダイアログ内のテキストビューにシークバーの進行状況を表示して解決策を見つけます。これが私のコードです:

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();

            }
        });

しかし、機能していません。私が間違っていることを見つけるのを手伝ってください。前もって感謝します。

4

1 に答える 1