2013-04-22 72 views
1

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

这是customadapter类的ListView

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显示的按钮或表格布局或一些其它??

Plzz帮助IM在机器人编程新....

Thanx提前。

回答

0

我认为你可以使用gridView但它增加在列子元素第一排,然后。如果你想以这种方式显示你的主屏幕,你可以使用它。

您可以创建一个listener它会听你的按钮,点击列表内,并添加该项目在array这将填充您的gridView

注: - 使用array如果你有较少的项目,否则ArrayList或任何其他数据结构

+0

我应该添加到阵列?文字和图像视图? sry im在编程方面真的很新颖......如果可以的话,会很感激你的帮助。 – Saad 2013-04-23 05:23:55

+0

现在明白了,谢谢你的帮助 – Saad 2013-04-27 07:10:44