我的ExpandListView,每个组有一个子项,每个子项有1个按钮。我现在需要点击按钮修改按钮自己的文本。因为我使用了ViewHolder,现在导致我随便点击一个按钮,所有的按钮文本都跟着变。求想法。我的点击事件是写在getChildView里面的。public View getChildView(int groupPosition, int childPosition,
                                boolean isLastChild, View convertView, ViewGroup parent) {
                        // TODOAuto-generated method stub
 
                        if (convertView == null) {
                                holdler = new DowningCHoldler();
                                convertView = LayoutInflater.from(CityDownloadActivity.this)
                                                .inflate(R.layout.city_downloading_item_child, null);
                                holdler.pauseMapbtn = (Button) convertView
                                                .findViewById(R.id.city_downloading_btn_console);
                                convertView.setTag(holdler);
                        } else {
                                holdler = (DowningCHoldler) convertView.getTag();
                        }
                        setOnClickListener(groupPosition, childPosition, convertView,btn);
                        return convertView;
                }[code=java]
private void setOnClickListener(final int groupPosition,
                                final int childPosition, final View convertView,final Button btn) {
                        // TODO Auto-generated method stub
 
                        holdler.pauseMapbtn.setOnClickListener(new OnClickListener() {
 
                                @Override
                                public void onClick(View v) {
                                        // TODO Auto-generated method stub
                                         
                                        if (holdler.pauseMapbtn.getText.equals("暂停下载")) {
 
                                                }
 
holdler.pauseMapbtn.setText("继续下载");
                                                 
                                                 
 
                                        } else if (holdler.pauseMapbtn.equals("继续下载")) {
 
 
holdler.pauseMapbtn.setText("暂停下载");
                                        }
                                        updateView();
 
                                }
                        });
/code]

解决方案 »

  1.   

    我原来想通过v.getTag来作为判断条件,但是一直报空指针,还有目前的问题的是我如何给按钮赋新的值
      

  2.   

    holder的存在会不会产生这样原因呢
      

  3.   

    holder.post_rel.setOnClickListener(new Click(childPosition));
    public class Click implements OnClickListener {
    int groupid = 0; public Click(int childPosition) {
    groupid = childPosition;
    } @Override
    public void onClick(View v) {
    // Intent intent = new Intent(context,
    // LiaoYiLiaoPostDetailsActivity.class);
    // context.startActivity(intent);
    } }我这样直接就可以了啊