2010-11-24 110 views
4

因爲我還只是在學習Android(而且看起來亞馬遜說它會在2個月之後纔會出現Hello,Android的書),我仍然在做簡單的事情。使用ImageView在RelativeLayout上點擊一個按鈕,我就沒有問題了。創建它的代碼如下:向RelativeLayout動態添加內容

private int mIconIdCounter = 1; 
private ImageView addIcon(){ 
    ImageView item = new ImageView(this); 
    item.setImageResource(R.drawable.tiles); 
    item.setAdjustViewBounds(true); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    if(mIconIdCounter != 1){ 
     params.addRule(RelativeLayout.RIGHT_OF, 1); 
    } 
    item.setLayoutParams(params); 
    item.setId(mIconIdCounter); 
    ++m_IconIdCounter; 
    return item; 
} 

和代碼中添加的項目是:

Button addButton = (Button)findViewById(R.id.add_new); 
addButton.setOnClickListener(new OnClickListener(){ 
    @Override 
    public void onClick(View view) { 
     addContentView(addIcon(), new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    } 
}); 

當我點擊我的按鈕會發生什麼是所有新創建的視圖被放置在彼此頂上。我希望將它們放在下一個元素的右側。我在SO上搜索了與RelativeLayout有關的文章,並發現了一些類似的文章(here,here,herehere),但是當這些內容進入RelativeView時,他們似乎沒有解決定位方面的問題。

我在做什麼錯?

編輯:

我主要的XML是什麼樣子:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <Button 
     android:id="@+id/add_new" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/add_new" 
     android:layout_alignParentBottom="true" /> 
</RelativeLayout> 

回答

8

看起來你可能會被添加視圖佈局XML,而不是RelativeLayout的根。

你可以嘗試:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.my_layout); 
layout.addView(addIcon()); 
+0

因此,如果我的主要xml只不過是一個RelativeLayout和一個Button,它如何訪問它?就像(R.id.main)?我會更新我的問題向你展示。 – wheaties 2010-11-24 19:07:50

+0

你需要給你的relativelayout一個ID爲android:id =「+ @ id/my_layout」。 然後你可以在你的代碼中實例化你的佈局。以便您可以添加視圖。 希望有幫助! – Knossos 2010-11-24 21:00:39

0

要創建函數調用內部新的相對佈局。所以每次創建新的相對佈局,並在單擊按鈕時添加到視圖中。使用常見的相對佈局。