Android 具有文本视图的可单击图像

Android 具有文本视图的可单击图像,android,listview,textview,imageview,android-linearlayout,Android,Listview,Textview,Imageview,Android Linearlayout,我想在图片上动态添加蓝色数据库中的图像和文本视图。我还希望它是可点击的,并且它可以将它的Id或其他信息传递给下一个活动。我想到了listview,但eclipse说它不应该在scrollview中。所以我尝试创建线性布局,在它里面我尝试放置另一个不同方向的线性布局,包含图像和文本视图,就像每行一个线性布局一样。我不确定我是否做得很好,但它只显示第一个图像和最后一个文本视图,所以我想这不是正确的方式 以下是布局图: 以下是我添加视图的方式: //architekti

我想在图片上动态添加蓝色数据库中的图像和文本视图。我还希望它是可点击的,并且它可以将它的Id或其他信息传递给下一个活动。我想到了listview,但eclipse说它不应该在scrollview中。所以我尝试创建线性布局,在它里面我尝试放置另一个不同方向的线性布局,包含图像和文本视图,就像每行一个线性布局一样。我不确定我是否做得很好,但它只显示第一个图像和最后一个文本视图,所以我想这不是正确的方式

以下是布局图:

以下是我添加视图的方式:

//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)。

您应该使用带有自定义适配器的ListView。网上有许多教程: