2011-10-24 7 views
0

の最上部に表示され、これは私が実際に動作することを発見した最高のコードです:を追加しましたビューは、私は、複数のtextviewsやボタンのonClickを追加しようとしてきた画面

RelativeLayout relative = (RelativeLayout) findViewById(R.id.RelativeLayout01); 
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
      (LayoutParams.WRAP_CONTENT), (LayoutParams.WRAP_CONTENT)); 

    TextView tv = new TextView(getApplicationContext()); 
    tv.setLayoutParams(lp); 
    tv.setText("Shift" + mShiftCount); 

    EditText edittv = new EditText(getApplicationContext()); 
    edittv.setLayoutParams(lp); 

    relative.addView(tv); 
    relative.addView(edittv); 

これが最善であると思わ私のmain.XMLファイルにすでにあるものと同様の項目を追加するコード。 私の問題は、これらが追加されたときに画面の上部に表示され、オブジェクトにパラメータを追加する方法がわかりません。 XMLで指定された他の要素の下にtextviewとedittextを配置する方法はありますか?

答えて

0

RelativeLayoutにtvやedittvのようなビューを追加するときは、RelativeLayout.LayoutParamshereを参照)を作成する必要があります。 RelativeLayout.LayoutParamsでは、他のRelativeLayoutオブジェクトに与えるのと同じパラメータを定義する必要があります。ここに例があります:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
params.addRule(RelativeLayout.BELOW, R.id.idOfWhatYouWantToBeBelowOf); 
addView(tv, params); 
+0

これは機能します!ありがとう!もう1つ問題があります.TextViewの下にEditTextを表示させるにはどうしたらいいですか? これは動作しません: – Trav

+0

'RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT、RelativeLayout.LayoutParams.WRAP_CONTENT); \t \t params.addRule(RelativeLayout.BELOW、R.id.syncCalendar); tv.setLayoutParams(params);リテラルレイアウト。 \t \t params2.addRule(RelativeLayout.BELOW、tv); ' – Trav

+0

'tv.setId(123)'(または何らかの乱数)を実行するだけで 'tv'オブジェクトにIDを与える必要があります。レイアウトパラメータでは、ID番号として123を使用します。あなたがそれが役に立つと分かったらこの答えを受け入れることを忘れないでください! – Brian

0

最初に表示されている静的なコンポーネントと動的コンポーネントがあります。あなたのレイアウトファイルが何であるかを指定してください。そうすれば、あなたのアプリケーションでもっと詳細を伝えることができます。

+0

私のmain.xmlには、LinearLayout、ScrollView、その内部のRelativeLayout、そして多数のTextViews、Buttons、EditTextxs、およびAutoCompleteTextViewsがあります。 – Trav

関連する問題