动态添加视图

时间:2015-04-10 16:54:08

标签: android api android-activity dynamic view

我在网上搜索过,并没有找到确切的方法。我大多看起来不正确,所以不要重新发布转发和其他评论。只需将我引导到一个狂欢的帖子或回答我的问题。三江源。

如何动态地将值添加到xml视图并将其添加到活动中。这应该使用我从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)

由于

1 个答案:

答案 0 :(得分:0)

首先,在为添加到RelativeLayout的内容设置LayoutParams时,需要使用RelativeLayout.LayoutParams而不是Toolbar.LayoutParams。

接下来,您需要确保您创建的RelativeLayout已为其添加的容器类型(rootView)设置了正确的布局参数。

使用setOnClickListener使每个视图都可单击,如下所示:

view.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {

    }
});