2014-11-01 90 views
0

我有一個自定義ListItem微調,它有左邊的文本和右邊的按鈕。當Spinner處於摺疊狀態時,按鈕工作正常。當Spinner擴展時,按鈕不響應。Android的微調項目按鈕設置點擊聽衆

ButtonListItemAdapter.java

@Override 
    public View getView(final int position, final View convertView, ViewGroup parent) 
    { 
     View rowView = convertView; 
     if(rowView == null) 
     { 
      LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      rowView = inflater.inflate(R.layout.listitem_button, parent, false); 
      ButtonListViewHolder viewHolder = new ButtonListViewHolder(); 
      viewHolder.textView = (TextView) rowView.findViewById(R.id.listitem_button_text1); 
      viewHolder.button = (Button) rowView.findViewById(R.id.listitem_button_button1); 
      rowView.setTag(viewHolder); 
     } 

     ButtonListViewHolder holder = (ButtonListViewHolder) rowView.getTag(); 

     holder.textView.setText(values[position]); 
     //Here is where I set the onClickListener 
     //I created a class onListButtonClickListener, and that is what 
     //I call onClick(convertView, position) on in this method 
     holder.button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
       if(l != null) 
        l.onClick(convertView, position); //l instance of OnListButtonClickListener 
      } 
     }); 

     return rowView; 
    } 

    static class ButtonListViewHolder 
    { 
     TextView textView; 
     Button button; 
    } 

    public interface OnListButtonClickListener 
    { 
     public void onClick(View v, int position); 
    } 

很抱歉的簡要說明,我沒有時間,現在發佈大量代碼。提前致謝!!

P.S.有人知道我的其他帳戶去了哪裏? :D

回答

0

解決了它,我超越了它。我重寫了getDropDownView()並以與我實現getView()完全相同的方式實現它。

@Override 
    public View getDropDownView(final int position, final View convertView, ViewGroup parent) 
    { 
     View rowView = convertView; 
     if(rowView == null) 
     { 
      LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      rowView = inflater.inflate(R.layout.listitem_button, parent, false); 
      ButtonListViewHolder viewHolder = new ButtonListViewHolder(); 
      viewHolder.textView = (TextView) rowView.findViewById(R.id.listitem_button_text1); 
      viewHolder.button = (Button) rowView.findViewById(R.id.listitem_button_button1); 
      rowView.setTag(viewHolder); 
     } 

     ButtonListViewHolder holder = (ButtonListViewHolder) rowView.getTag(); 

     holder.textView.setText(values[position]); 
     //Here is where I set the onClickListener 
     //I created a class onListButtonClickListener, and that is what 
     //I call onClick(convertView, position) on in this method 
     holder.button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
       if(l != null) 
        l.onClick(convertView, position); //l instance of OnListButtonClickListener 
      } 
     }); 

     return rowView; 
    }