2011-10-24 53 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文件中已有的內容相似。 我的問題是,當這些被添加時,他們出現在屏幕的頂部,我不確定如何添加更多的參數到對象。 我會如何將textview和edittext放置在XML中指定的其他元素的下方?

回答

0

當您將諸如tv和edittv的視圖添加到RelativeLayout時,您需要做的是創建一個RelativeLayout.LayoutParams(請參閱here)。在您的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

這很有效!謝謝!我只有一個其他問題,我如何讓EditText出現在TextView下面? 這不起作用: – 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); RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); \t \t params2.addRule(RelativeLayout.BELOW,tv);' – Trav

+0

你只需要通過'tv.setId(123)'(或一些隨機數)給你'tv'對象一個id。然後在佈局參數中使用123作爲id號。如果您發現它有幫助,請記住接受此答案! – Brian

0

首先肯定有一些靜態的組件到你的視圖和一些動態組件。你能指定什麼是你的佈局文件,以便我可以在你的應用程序中給你更多的細節。

+0

我的main.xml裏有一個LinearLayout,一個ScrollView,一個RelativeLayout,然後有很多TextViews,Buttons,EditTextxs和AutoCompleteTextViews。 – Trav