0

imageview と textview で動的な行を作成しようとしています。このようなもの:

|_| textview

したがって、私の質問は、xml ファイルを使用せずに、同じ行に Java ソースの imageview の近くに textview を配置できるかどうかです。

これは私のコードです:

TableLayout table = (TableLayout)findViewById(R.id.table); 
    db.open();
    Cursor c5 = db.getAllCodes();        

    if (c5.moveToFirst())
    {
      do{     
             //rows
          TableRow tr = new TableRow(this);
          tr.setClickable(true);
          tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));    

          TextView title = new TextView(this);
          title.setTextColor(Color.BLACK);
          title.setTextSize(20);

          //TextView text = new TextView(this);
          //TextView stamp = new TextView(this);

          title.setText(c5.getString(6));
          //text.setText(c5.getString(1));
          //stamp.setText(c5.getString(2));

          //tr.addView(iv);
          tr.addView(title);  
          //tr.addView(text);
          //tr.addView(stamp);


          //add row to layout
          getLayoutInflater().inflate(R.layout.image, table, true); 
          table.addView(tr,new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 

    }
while (c5.moveToNext());}
    db.close();

このコードの結果、2 つの異なる行が作成されます。1 つは画像、もう 1 つはテキストビューです。

4

1 に答える 1

1

ImageView と TextView を含む xml ファイルにジェネリック ビューを記述できます。後でループ メソッドでビューを膨張させ (ImageView と TextView を子として)、その内容を設定できます。

このようなもの:

list_item.xml というファイルで汎用ビューを定義する

<ImageView
    android:id="@+id/icon"

    android:layout_width="wrap_content"
    android:layout_height="fill_parent"

    android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="6dip"

    android:src="@drawable/icon_search" />

<TextView
    android:id="@+id/listItemFirstLine"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:layout_toRightOf="@id/icon"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_alignWithParentIfMissing="true"

    android:textColor="#FF000000"

    android:gravity="center_vertical"
    android:text="My Application" />

次に、次のようなことができます: xml ファイルからジェネリック ビューをインフレートし、TextView および ImageView コンテキストを設定します...

 if (c5.moveToFirst())
    {
      do{     
             //rows
          TableRow tr = new TableRow(this);
          tr.setClickable(true);
          tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));    

          LayoutInflater inflater = LayoutInflater.from(context);
          View genericView = inflater.inflate(R.layout.list_item, null);

          TextView title = ((TextView)genericView.findViewById(R.id.listItemFirstLine));
          title.setTextColor(Color.BLACK);
          title.setTextSize(20);

          //TextView text = new TextView(this);
          //TextView stamp = new TextView(this);

          title.setText(c5.getString(6));
          //text.setText(c5.getString(1));
          //stamp.setText(c5.getString(2));

          //tr.addView(iv);
          tr.addView(genericView);  
          //tr.addView(text);
          //tr.addView(stamp);


          //add row to layout
          getLayoutInflater().inflate(R.layout.image, table, true); 
          table.addView(tr,new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 

    }
while (c5.moveToNext());}
    db.close();

ここで詳細を読むことができます

お役に立てれば。

于 2011-01-18T13:35:04.053 に答える