我想从数据库中动态添加图像和文本视图(图片中的蓝色)。我也希望它是可点击的,并且它可以将它的Id或其他内容传递给下一个活动。我想到了listview,但是eclipse说它不应该在scrollview中。所以我尝试创建线性布局,在其中我尝试放置包含图像和textview的另一个线性布局(不同方向)(所以每行一个线性布局)。我不确定我是否做得好,但它只显示第一张图片和最后一张textview,所以我想这不是正确的方法。
这是布局图: http://pbrd.co/R0JVKs
以下是我添加视图的方式:
//architekti
llArchitekti = (LinearLayout) findViewById(R.id.architekt_layout);
LinearLayout llArchitekt;
ImageView arch_obr;
TextView tvArchitekt;
int i = 0;
for(String architekt : architekti){
arch_obr = new ImageView(ObjectInfo.this);
if(architekti_obrazky.size()>i && architekti_obrazky.get(i)!="no_image"){
arch_obr.setImageBitmap(BitmapFactory.decodeFile(getExternalFilesDir(null)+"/images/thumb/obr_"+architekti_obrazky.get(i)+"_1.jpg"));
}else{
arch_obr.setImageBitmap(BitmapFactory.decodeFile(getExternalFilesDir(null)+"/images/thumb/no_image.jpg"));
}
arch_obr.setPadding(8, 8, 20, 8);
arch_obr.setLayoutParams(new LayoutParams( 150 , LayoutParams.WRAP_CONTENT));
//here starts the adding part
llArchitekt = new LinearLayout(ObjectInfo.this);
llArchitekt.setOrientation(LinearLayout.VERTICAL);
llArchitekt.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
tvArchitekt = new TextView(ObjectInfo.this);
tvArchitekt.setText(architekt);
tvArchitekt.setClickable(true);
tvArchitekt.setTextSize(22);
tvArchitekt.setPadding(8, 8, 20, 8);
tvArchitekt.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
llArchitekt.addView(arch_obr);
llArchitekt.addView(tvArchitekt);
llArchitekti.addView(llArchitekt);
i++;
}
llArchitekt应该是每行的线性布局,llArchitekti应该是我添加行的线性布局。
llArchitekt - 垂直 llArchitekti - 水平
此外,我不确定是否可以通过点击获取一些ID(最好是来自数据库的ID)。