私はまだAndroidを学んでいるので(私はHello、Androidの本を手に入れるまで2ヶ月かかるとAmazonによると思われます)私はまだ簡単なことをやって遊んでいます。 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));
}
});
私は何が起こるか私のボタンをクリック
は、新しく作成されたすべてのビューが互いの上に配置されています。私はそれらを次の要素の右に置くことを望みます。私はRelativeLayoutに関する記事をSOですばやく検索し、同様のもの( here、 here、 here、および here)を見つけましたが、これらは相対的なビューにコンテンツを取り込む際に、ポジショニングの側面に対処していないようです。私は間違っていますか?
EDIT:あなたの代わりにRelativeLayoutのレイアウト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>
私の主なXMLがRelativeLayoutとその中のボタンに過ぎない場合、どうすればそれにアクセスできますか?ちょうど(R.id.main)のように?私はあなたにあなたの質問を更新します。 – wheaties
あなたはあなたのrelativelayoutにandroid:id = "+ @ id/my_layout"というIDを与える必要があります。 次に、コード内にレイアウトをインスタンス化できます。ビューを追加することができます。 お役に立てば幸いです! – Knossos
問題ありません。お役に立てて嬉しいです。 – Knossos