【问题标题】:How to add buttons dynamically from a listView?如何从 listView 动态添加按钮?
【发布时间】:2013-04-22 12:00:15
【问题描述】:

我有一个添加按钮,通过单击该添加按钮会弹出一个列表视图,并且在该列表视图的每一行中都有一个按钮。通过单击按钮,特定行(我的意思是该行的文本和图像)应作为图像按钮添加到我的应用程序的主屏幕。

这是listView的customadapter类

public class NewsRowAdapter extends ArrayAdapter<Item> {

private Activity activity;
private List<Item> items;
private Item objBean;
private int row;
private DisplayImageOptions options;
ImageLoader imageLoader;

public NewsRowAdapter(Activity act, int resource, List<Item> arrayList) {
    super(act, resource, arrayList);
    this.activity = act;
    this.row = resource;
    this.items = arrayList;

    options = new DisplayImageOptions.Builder()
            .showStubImage(R.drawable.profile)
            .showImageForEmptyUrl(R.drawable.profile).cacheInMemory()
            .cacheOnDisc().build();
    imageLoader = ImageLoader.getInstance();

}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View view = convertView;
    ViewHolder holder;
    if (view == null) {
        LayoutInflater inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(row, null);

        holder = new ViewHolder();
        view.setTag(holder);
    } else {
        holder = (ViewHolder) view.getTag();
    }

    if ((items == null) || ((position + 1) > items.size()))
        return view;

    objBean = items.get(position);

    holder.tvTitle = (TextView) view.findViewById(R.id.tvtitle);
    holder.tvDesc = (TextView) view.findViewById(R.id.tvdesc);
    holder.tvDate = (TextView) view.findViewById(R.id.tvdate);
    holder.imgView = (ImageView) view.findViewById(R.id.image);
    holder.pbar = (ProgressBar) view.findViewById(R.id.pbar);
            holder.button = (Button) view.findViewById(R.id.button);
    if (holder.tvTitle != null && null != objBean.getTitle()
            && objBean.getTitle().trim().length() > 0) {
        holder.tvTitle.setText(Html.fromHtml(objBean.getTitle()));
    }
    if (holder.tvDesc != null && null != objBean.getDesc()
            && objBean.getDesc().trim().length() > 0) {
        holder.tvDesc.setText(Html.fromHtml(objBean.getDesc()));
    }
    if (holder.tvDate != null && null != objBean.getPubdate()
            && objBean.getPubdate().trim().length() > 0) {
        holder.tvDate.setText(Html.fromHtml(objBean.getPubdate()));
    }
    if (holder.imgView != null) {
        if (null != objBean.getLink()
                && objBean.getLink().trim().length() > 0) {
            final ProgressBar pbar = holder.pbar;

            imageLoader.init(ImageLoaderConfiguration
                    .createDefault(activity));
            imageLoader.displayImage(objBean.getLink(), holder.imgView,
                    options, new ImageLoadingListener() {
                        @Override
                        public void onLoadingComplete() {
                            pbar.setVisibility(View.INVISIBLE);

                        }

                        @Override
                        public void onLoadingFailed() {
                            pbar.setVisibility(View.INVISIBLE);
                        }

                        @Override
                        public void onLoadingStarted() {
                            pbar.setVisibility(View.VISIBLE);

                        }
                    });

        } else {
            holder.imgView.setImageResource(R.drawable.ic_launcher);
        }
    }

    return view;
}

public class ViewHolder {

    public TextView tvTitle, tvDesc, tvDate;
    private ImageView imgView;
    private ProgressBar pbar;

}

}

这个列表视图是通过 json 解析的,所以当我添加一个按钮时,该按钮应该是布局中的第一个按钮 所以我的第一个问题是如何将按钮动态添加到主屏幕? 第二个问题 我应该使用 GridView 来显示按钮或表格布局或其他一些吗??

请帮助我在 android 编程方面的新人......

提前感谢。

【问题讨论】:

    标签: android listview button custom-adapter


    【解决方案1】:

    我认为您可以使用gridView,但它会先在列中添加子元素,然后再在行中添加子元素。如果你想以这种方式显示你的主屏幕,你可以使用它。

    您可以创建一个listener,它会监听您在列表中单击的按钮,并将该项目添加到array 中,该array 将填充您的gridView

    注意:- 使用 array 以防您的项目较少,否则使用 ArrayList 或任何其他数据结构

    【讨论】:

    • 我应该在数组中添加什么??文本和图像视图?对不起,我在编程方面真的很新……如果可以的话,我会很感激你的帮助……
    猜你喜欢
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2016-05-24
    相关资源
    最近更新 更多