2011-07-12 29 views
0

私はちょうどアンドロイドのプログラミングを始め、クイックコードを書いて、自分が望むことをすることができませんでした。基本的には、2つのテキストボックスと特定のレイアウトで表示されたイメージを持つダイアログボックスが表示されます。私は次のコードを持っています:相対的なレイアウトがプログラムで動作しない

AlertDialog.Builder dialog = new AlertDialog.Builder(this); 

    RelativeLayout dialogItems = new RelativeLayout(this); 
    EditText itemTitle = new EditText(this); 
    EditText itemBody = new EditText(this); 
    ImageView dIcon = new ImageView(this); 

    itemTitle.setText("Note Title"); 
    itemBody.setText("Note Details"); 
    dIcon.setImageResource(R.drawable.create); 

    final RelativeLayout.LayoutParams imageParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    imageParam.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
    imageParam.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    dIcon.setLayoutParams(imageParam); 
    dialogItems.addView(dIcon, imageParam); 

    final RelativeLayout.LayoutParams titleParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    titleParam.addRule(RelativeLayout.RIGHT_OF, dIcon.getId()); 
    titleParam.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    itemTitle.setLayoutParams(titleParam); 
    dialogItems.addView(itemTitle, titleParam); 

    final RelativeLayout.LayoutParams bodyParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    bodyParam.addRule(RelativeLayout.ALIGN_LEFT, itemTitle.getId()); 
    bodyParam.addRule(RelativeLayout.BELOW, itemTitle.getId()); 
    itemBody.setLayoutParams(bodyParam); 
    dialogItems.addView(itemBody, bodyParam); 

    dialog.setView(dialogItems); 

    dialog.show(); 

これはなぜ動作しないのですか?問題は、ポップアップが表示されますが、すべてのアイテムが左上に重なるだけです。ありがとう

P.S.私は他の投稿や質問をチェックしていて、答えがうまくいきません!ですから私を別の質問にリンクさせるのではなく、自分のコードを修正してください。

答えて

4

すべてのビューが同じID(-1)になるようにIDを設定しませんでした。これはうまくいくはずです:

private static final int DIALOG_ITEMS_ID = 1; 
private static final int ITEM_TITLE_ID = 2; 
private static final int ITEM_BODY_ID = 3; 
private static final int ICON_ID = 4; 

RelativeLayout dialogItems = new RelativeLayout(this); 
dialogItems.setId(DIALOG_ITEMS_ID); 
EditText itemTitle = new EditText(this); 
itemTitle.setId(ITEM_TITLE_ID); 
EditText itemBody = new EditText(this); 
itemBody.setId(ITEM_BODY_ID); 
ImageView dIcon = new ImageView(this); 
dIcon.setId(ICON_ID); 
+0

私はそれが自動的に項目に自分のidを与えるだろうと仮定しました。:P – Randomman159

関連する問題