создание динамической таблицы в Android - PullRequest
0 голосов
/ 16 февраля 2011

Я пытаюсь создать таблицу из двумерного массива строк. Тем не менее, я впадаю в создание представлений в коде, поэтому по какой-то причине мое изображение никогда не отображается, и мои текстовые представления не разбиваются на несколько строк, вместо этого они обрезают текст.

Кроме того, я добавляю идентификатор в каждое текстовое представление в моем коде, когда кто-то щелкает текстовое представление, я надеялся, что смогу использовать этот идентификатор для идентификации строки, по которой щелкнули. К сожалению, это был не тот случай.

Есть ли хорошие способы определения правильной строки?

Привет

      for (int current=0; current<cityArr.length; current++) {

      TableRow tr = new TableRow(this);
      tr.setId(100+current);
      tr.setLayoutParams(new LayoutParams(
              LayoutParams.FILL_PARENT,
              LayoutParams.WRAP_CONTENT));   

      TextView labelTV = new TextView(this);
      labelTV.setId(current);
      labelTV.setText(cityArr[current][0]);
      labelTV.setTextColor(Color.BLACK);
      labelTV.setLayoutParams(new LayoutParams(
              LayoutParams.FILL_PARENT,
              LayoutParams.WRAP_CONTENT));
      tr.addView(labelTV);

      ImageView mapView = new ImageView(this);
      mapView.setImageResource(R.drawable.list_icon_map);
      mapView.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT, 5));
      tr.addView(mapView);

      tlcity.addView(tr, new TableLayout.LayoutParams(
              LayoutParams.FILL_PARENT,
              LayoutParams.WRAP_CONTENT));
  }

Ответы [ 2 ]

5 голосов
/ 06 июля 2011
public class MainActivity extends Activity  {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ScrollView sv = new ScrollView(this);

        TableLayout ll=new TableLayout(this);
        HorizontalScrollView hsv = new HorizontalScrollView(this);

        for(int i=1;i<30;i++) {
            TableRow tbrow=new TableRow(this);

            for(int j=1;j<=20;j++) {
                TextView tv1=new TextView(this);
                String s1 = Integer.toString(i);
                String s2 = Integer.toString(j);
                String s3 = s1+s2;
                int id = Integer.parseInt(s3);
                tv1.setId(id);

                tv1.setText("Dynamic TextView  no:     "+id);
                tbrow.addView(tv1);
            }
            ll.addView(tbrow);
        }
        hsv.addView(ll);
        sv.addView(hsv);
        setContentView(sv);
    }
}
1 голос
/ 17 февраля 2011

Ха, оказалось, что работает нормально с функцией setID (). до тех пор, пока я помещаю OnClickListener в нужный компонент ...

...