0

ダイアログ内で TextView と Seekbar をレンダリングする際に 1 つの問題に直面しています。

私はAndroidサイトからこのチュートリアルを練習していました

この問題は for ループ内にあり、TextView と SeekBar は 5 回追加され、ダイアログに表示されるはずです。ただし、表示される TextView は 1 つだけです。

コードは次のとおりです。

public void onCheckedChanged(RadioGroup rgroup, int rbutton) {
    String eqSettingName = ((RadioButton) findViewById(rbutton)).getText()
            .toString();
    if (eqSettingName.equals("Custom")) {
        Dialog dialog = new Dialog(this);
        dialog.setTitle("Custom Equalizer");
        LinearLayout LL = new LinearLayout(this);

        short noOfBands = mEqualizer.getNumberOfBands();
        final short minEQLevel = mEqualizer.getBandLevelRange()[0]; 
        final short maxEQLevel = mEqualizer.getBandLevelRange()[1]; 

        for (short i = 0; i < noOfBands; i++) {
            short band = i;

            TextView freqTV = new TextView(this);
            freqTV.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            freqTV.setGravity(Gravity.CENTER_HORIZONTAL);
            freqTV.setText((mEqualizer.getCenterFreq(band)) / 1000 + " Hz");
            LL.addView(freqTV);

            SeekBar bar = new SeekBar(this);
            bar.setLayoutParams(layoutParams);
            bar.setMax(maxEQLevel - minEQLevel);
            bar.setProgress(mEqualizer.getBandLevel(band));
            LL.addView(bar);


        }

        /*
        LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.customseekbar,
                (ViewGroup) findViewById(R.id.rlCustomEqualizerSeekBar));
        */
        dialog.addContentView(LL, layoutParams);
        dialog.show();
    }

}
4

2 に答える 2

1

デフォルトLinearLayoutorientation="horizontal"。です。向きを垂直に変更すると、必要なものが表示されます。

LL.setOrientation(LinearLayout.VERTICAL);
于 2012-05-25T21:03:43.527 に答える
0

LinearLayoutの向きは正しいですか?

LL.setOrientation(LinearLayout.VERTICAL);
于 2012-05-25T21:03:38.113 に答える