Возможно ли иметь изображение и текстовое представление в одной строке таблицы в проекте Android? - PullRequest
0 голосов
/ 18 января 2011

Я пытаюсь создать динамическую строку с изображением и текстом.Примерно так:

|_| textview

Итак, мой вопрос: возможно ли в одной строке иметь текстовое представление рядом с изображением в исходном коде Java, без использования XML-файла ..

Этомой код:

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();

Результатом этого кода является создание двух разных строк, одна с изображением, а другая с текстом.

1 Ответ

1 голос
/ 18 января 2011

вы можете написать общий вид в xml-файле, который содержит ImageView и TextView, позже в вашем методе цикла вы можете надуть View (с помощью 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();

Здесь вы можете прочитать дополнительную информацию

Надеюсь, это поможет.

...