1

私は基本的に次のようなものが欲しいです:

  TextView
  Button
  Button
  .
  .
  .
  TextView   TextView
  SeekBar
  Button

私はこれをプログラムで行わなければなりません。これで、SeekBarの上のTextViewが表示されないという事実を除いて、すべてが機能しています。

この作業を行っている関連コードは

//Setting the linear layout
    ll =  new LinearLayout(getApplicationContext());                //a linear layout encompasses all the other elements
    ll.setOrientation(LinearLayout.VERTICAL);   //orientation has to be vertical
    ll.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));     //the layout occupies the complete screen

    //Set the TextView for the Question
    tv1 = new TextView(getApplicationContext());
    tv1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));    //sets the dimensions of the textView
    ll.addView(tv1);                            //add the TextView to the LinearLayout

    //Set the buttons (?)
    b = new Button [MAX_OPTIONS];               
    for(int i=0;i<MAX_OPTIONS;i++){
        b[i] = new Button(getApplicationContext());     //set the context for each button
        b[i].setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
        ll.addView(b[i]);
    }

    //Set the Table Layout
    tl = new TableLayout(getApplicationContext());
    tl.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
    tl.setColumnStretchable(0, true);
    tl.setColumnStretchable(1, true);

    //Set the Table Row
    tr = new TableRow(getApplicationContext());
    tr.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
    tr.setPadding(dipConvert(5), dipConvert(5), dipConvert(5), dipConvert(5));

    //Set the two TextViews
    tv2 = new TextView(getApplicationContext());
    tv2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    tv2.setGravity(Gravity.LEFT);               //set the gravity of this TextView to left
    tv3 = new TextView(getApplicationContext());
    tv3.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    tv3.setGravity(Gravity.RIGHT);
    tv3.setPadding(0, 0, dipConvert(15), 0);    //set the padding for this to be displayed(the number 15 was emperically determined)

    //Add the Textview to table row
    tr.addView(tv2);        tr.addView(tv3);

    //Add the TableRow to the Table Layout
    tl.addView(tr);

    //Add the TableLayout to the LinearLayout
    ll.addView(tl);

    //Set the Seekbar
    sb1 = new SeekBar(getApplicationContext());
    sb1.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
    sb1.setMax(100);
    sb1.setMinimumWidth(250);
    ll.addView(sb1);

    //Set the Seekbar Button
    sb1_b = new Button(getApplicationContext());
    sb1_b.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    ll.addView(sb1_b);
            setContentView(ll);

何が起こっているのか理解できません。私が得るディスプレイは次のようなものです

   TextView
   Button
   Button
   .
   .
   .

   SeekBar
   Button

誰かが私を正しい方向に向けることができれば素晴らしいと思います。

ありがとう!

4

1 に答える 1

3

tableRow要素の子要素にTableRow.layoutパラメーターが必要です。これはここでよく説明されています。参照して修正してください。これは非常に単純なしゃっくりであり、簡単に無視できます。

あなたのテキストビューは

tv2.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));

tv3も同様です。

于 2012-06-14T00:37:19.763 に答える