下面添加现有的TextView一个ImageView的编程

问题描述:

如何以编程方式添加视图到现有的视图,例如我在XML TextView的,现在我需要补充的是TextView的编程下面ImageView的,这里是我试过,下面添加现有的TextView一个ImageView的编程

 HorizontalScrollView scroll = new HorizontalScrollView(getApplicationContext()); 
    LinearLayout imageLayout = new LinearLayout(getApplicationContext()); 
    scroll.setLayoutParams(new ViewGroup.LayoutParams(imageLayout.getWidth(), 
      imageLayout.getHeight())); 
    scroll.addView(imageLayout); 

    for (int i = 0; i < 15; i++) { 

     final ImageView imageView = new ImageView(this); 
     imageView.setTag(i); 
     imageView.setImageResource(R.drawable.logo); 

     imageLayout.addView(imageView); 


     imageView.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Log.e("Tag", "" + imageView.getTag()); 
      } 
     }); 
    }but its not adding any imageview, I'm trying to do this in **AlertDialog** 
+2

你的Horizo​​ntalScrollView添加到现有的View^h ierarchy?从片段中,我可以看到你已经创建了一个Horizo​​ntalScrollView滚动并添加了一个imageView。 – Praga

ImageView imageView = new ImageView(this.getActivity()); 
imageView.setId(View.generateViewId()); 
params.addRule(RelativeLayout.BELOW, imageView.getId()); 
+0

虽然这段代码可能回答这个问题,但提供关于_how_和/或_why_的附加[上下文](https://meta.stackexchange.com/q/114762)可以解决问题,这样可以提高答案的长期价值。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请[编辑](http://*.com/posts/43250693/edit)您的答案添加一个解释,并指出适用的限制和假设。它也不会提到为什么这个答案比其他答案更合适。 –

ScrollView不能有一个以上的孩子。您应该将您的布局封装在LinearLayout之内,然后在将任意数量的视图添加到该LinearLayout之后。欢呼:)

+0

他们究竟在哪里添加了多个'View'到'Horizo​​ntalScrollView'? –

你正在做错误的方式。 一旦检查下面的代码片段。

LinearLayout yourlayout = (LinearLayout)findViewById(R.id.layoutid);//Layout which is inside scrollview 

    LinearLayout imageLayout = new LinearLayout(getApplicationContext()); 

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

    // add the rule that places your LinearLayout below your TextView object 
    params.addRule(RelativeLayout.BELOW, TextView.getId()); 

    // set the layoutParams on the LinearLayout 
    imageLayout.setLayoutParams(params); 


    yourlayout.addView(imageLayout); 

    for (int i = 0; i < 15; i++) { 

     final ImageView imageView = new ImageView(this); 
     imageView.setTag(i); 
     imageView.setImageResource(R.drawable.logo); 

     imageLayout.addView(imageView); 


     imageView.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Log.e("Tag", "" + imageView.getTag()); 
      } 
     }); 
    } 

我解决它在XML添加

<HorizontalScrollView 
android:id="@+id/horizontal_scroll" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" > 

    <LinearLayout 
    android:id="@+id/linear" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 
    </LinearLayout> 

</HorizontalScrollView> 

&

LinearLayout layout = (LinearLayout) findViewById(R.id.linear); 
for (int i = 0; i < 10; i++) { 
    ImageView imageView = new ImageView(this); 
    imageView.setId(i); 
    imageView.setPadding(2, 2, 2, 2); 
    imageView.setImageBitmap(BitmapFactory.decodeResource(
      getResources(), R.drawable.ic_launcher)); 
    imageView.setScaleType(ScaleType.FIT_XY); 
    layout.addView(imageView); 
} 
在MainActivity.java