动态添加视图
Dynamically adding view
我已经在互联网上搜索过,但还没有找到具体的操作方法。我大多没有看正确,所以不要开始 repost 和其他评论。只需将我引向令人反感的 post 或回答我的问题即可。谢谢。
如何将值动态添加到 xml 视图并将其添加到 activity。这应该使用我从 API.
获得的不同值多次完成
我目前正在做的是(这是在 onPostExecute 中的异步线程上):
RelativeLayout rl = new RelativeLayout(mContext);
rl.setPadding(0, 0, 0, 10);
ImageView img = new ImageView(mContext);
img.setLayoutParams(new Toolbar.LayoutParams(Toolbar.LayoutParams.FILL_PARENT, Toolbar.LayoutParams.FILL_PARENT));
img.setScaleType(ImageView.ScaleType.CENTER_CROP);
//img.setMaxHeight(300);
Picasso.with(mContext).load(imageURL[i]).into(img);
rl.addView(img);
TextView tv = new TextView(mContext);
tv.setText(uri[i]);
tv.setGravity(Gravity.CENTER | Gravity.BOTTOM);
tv.setTextSize(20);
tv.setBackgroundColor(Color.parseColor("#80000000"));
tv.setLayoutParams(new Toolbar.LayoutParams(Toolbar.LayoutParams.FILL_PARENT, Toolbar.LayoutParams.WRAP_CONTENT));
if(tv.getText()!= null) rl.addView(tv);
rootView.addView(rl);
有没有更好的方法来做到这一点,以便我有更多的控制权,比如预定义的布局,我只是将不同的值添加到其中。
另外,如何使每个视图都可点击? (添加 onClick)
谢谢
首先,在为添加到 RelativeLayout 的内容设置 LayoutParams 时,您需要使用 RelativeLayout.LayoutParams 而不是 Toolbar.LayoutParams。
接下来,您需要确保您创建的 RelativeLayout 为要添加到的容器类型(rootView)设置了正确的布局参数。
使用 setOnClickListener 使每个视图都可点击,如下所示:
view.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
}
});
我已经在互联网上搜索过,但还没有找到具体的操作方法。我大多没有看正确,所以不要开始 repost 和其他评论。只需将我引向令人反感的 post 或回答我的问题即可。谢谢。
如何将值动态添加到 xml 视图并将其添加到 activity。这应该使用我从 API.
获得的不同值多次完成我目前正在做的是(这是在 onPostExecute 中的异步线程上):
RelativeLayout rl = new RelativeLayout(mContext);
rl.setPadding(0, 0, 0, 10);
ImageView img = new ImageView(mContext);
img.setLayoutParams(new Toolbar.LayoutParams(Toolbar.LayoutParams.FILL_PARENT, Toolbar.LayoutParams.FILL_PARENT));
img.setScaleType(ImageView.ScaleType.CENTER_CROP);
//img.setMaxHeight(300);
Picasso.with(mContext).load(imageURL[i]).into(img);
rl.addView(img);
TextView tv = new TextView(mContext);
tv.setText(uri[i]);
tv.setGravity(Gravity.CENTER | Gravity.BOTTOM);
tv.setTextSize(20);
tv.setBackgroundColor(Color.parseColor("#80000000"));
tv.setLayoutParams(new Toolbar.LayoutParams(Toolbar.LayoutParams.FILL_PARENT, Toolbar.LayoutParams.WRAP_CONTENT));
if(tv.getText()!= null) rl.addView(tv);
rootView.addView(rl);
有没有更好的方法来做到这一点,以便我有更多的控制权,比如预定义的布局,我只是将不同的值添加到其中。 另外,如何使每个视图都可点击? (添加 onClick)
谢谢
首先,在为添加到 RelativeLayout 的内容设置 LayoutParams 时,您需要使用 RelativeLayout.LayoutParams 而不是 Toolbar.LayoutParams。
接下来,您需要确保您创建的 RelativeLayout 为要添加到的容器类型(rootView)设置了正确的布局参数。
使用 setOnClickListener 使每个视图都可点击,如下所示:
view.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
}
});