0

私はxmlファイルからデータを取得してリストビューに挿入するAndroidアプリケーションに取り組んでいます

しかし、UIを変更したいので、データをリストビューで垂直に表示するのではなく、スクロールビューで水平に表示したい

私の質問は、次のコードがあるかどうかです

<HorizontalScrollView 
        android:id="@+id/horizontalScrollView1"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:scrollbars="none">

        <LinearLayout 
            android:id="@+id/linearLayout1"
            android:orientation="horizontal" 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content" android:padding="2dp">

            <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <ImageView
                android:layout_width="wrap_content" 
                android:id="@+id/imageView11"
                android:layout_height="wrap_content" 
                android:src="@drawable/i1"/>
            <TextView
                android:id="@+id/TextOnImage11"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Fantasia Reviews"
                android:layout_alignParentBottom="true" 
                android:paddingLeft="2dp" 
                android:background="@drawable/txt_bg" 
                android:textSize="10dp" 
                android:paddingTop="2dp" 
                android:textColor="#FFFFFF"
                android:textStyle="bold" 
                android:width="0dp" />
            </RelativeLayout>
      </LinearLayout>
    </HorizontalScrollView>

Java コードから画像やテキストを動的に追加するにはどうすればよいですか??

ありがとうございました

4

1 に答える 1

0

コードサンプルで示した RelativeLayout の直後に、独自の画像/テキストペアを持つ別の RelativeLayout を追加することを意図していると思いますか?

その場合、単にビューをもう 1 つ追加するだけではないため、挿入する「構造」を表すクラスを時間をかけて作成します。

例: "RelativeLayout" を拡張する "TextImagePair" というクラス

public class TextImagePair extends RelativeLayout {
    public ReportDetailRow(Context context){
        super(context);
    }

    public TextImagePair(Context context,AttributeSet attributeSet){
        super(context, attributeSet);
    }

    public TextImagePair(Context context,AttributeSet attributeSet, int i){
        super(context, attributeSet,i);
    }

    public TextImagePair(Context context, AttributeSet attributeSet, String text, int drawableResource) {
        super(context, attributeSet);

        // Inflate the layout
        LayoutInflater inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflator.inflate(R.layout.lay_textimagepair, this);

        TextView tvText = (TextView)this.findViewById(R.id.layTextImagePair_textview);
        tvText.setText(text);

        ImageView imgView = (ImageView)this.findViewById(R.id.layTextImagePair_imageview);
        imgView.setDrawable(getResources().getDrawable(drawableResource));
    }
}

次に、テキスト ビューとイメージ ビューだけを含む個別の xml レイアウト ファイル (私のコードでは lay_textimagepair という名前) を作成します。

次に、実行時にこれをビューに追加します。

LinearLayout parent = (LinearLayout)findViewById(R.id.layParentView_liniearlayout);
TextImagePair tip = new TextImagePair(null,null,"Blah Blah Blah",R.drawable.something);
parent.addView(tip);

上記のコードにバグがある場合は申し訳ありませんが、Eclipse にアクセスせずに書いています!

于 2012-08-12T15:43:24.830 に答える