【问题标题】:Android : Passing button click response from getView() method of adapter class to mainActivityAndroid:将按钮单击响应从适配器类的 getView() 方法传递给 mainActivity
【发布时间】:2012-12-14 16:40:07
【问题描述】:

问题很简单。我编写了一个扩展 ArrayAdapter 的单独类。这个适配器处理几个 TEXTVIEW 和一个 BUTTON。问题是我不确定我是否将用 getView() 方法编写的 Button 的 onClickListener 响应响应到 main_activity。 main_activity 有很多基于按钮响应的逻辑要遵循。能否请您告诉我如何获得对 main_activity 的按钮响应?

下面是getView方法

public View getView(final int position, View convertView, ViewGroup parent) {      
    ViewHolder holder;   
    int type = getItemViewType(position); 

    if (convertView == null) { 
        holder = new ViewHolder();  
        switch (type) {
        case 0:
            convertView = vi.inflate(R.layout.group,  null); 
            holder.menuItem = (TextView) convertView.findViewById(R.id.tvGroup);
            convertView.setBackgroundColor(Color.RED); 
            break;              
        case 1:
            convertView = vi.inflate(R.layout.confirmitem,  null); 
            holder.menuItem = (TextView) convertView.findViewById(R.id.tvConfirmItem); 
            holder.quantity = (TextView) convertView.findViewById(R.id.tvQuantity); 
            holder.cancel   = (Button)   convertView.findViewById(R.id.bCancel); 

            //   cancel button
               holder.cancel.setOnClickListener(new View.OnClickListener() {        
                    public void onClick(View v) {                   
                        Log.i("ConfirmAdapter ","Button postion  "+ position + "canceled item : " + menuItemList.get(position).getTicketItemObject().getName() ); 
                        }       
                });   
            break; 
         }  
        convertView.setTag(holder); 
    } else {
        holder = (ViewHolder) convertView.getTag();  
    }    

    switch (type) {
    case 0:         
        holder.menuItem.setText(menuItemList.get(position).getTicketItemObject().getCategoryName()) ; 
        convertView.setBackgroundColor(Color.RED);  
        break;              
    case 1:
        holder.menuItem.setText(menuItemList.get(position).getTicketItemObject().getName());
        holder.quantity.setText(Integer.toString(menuItemList.get(position).getTicketItemObject().getItemCount())); 
        break; 
     }

    return convertView; 
    }

【问题讨论】:

    标签: android android-arrayadapter android-button onclicklistener


    【解决方案1】:

    在你的arrayadapter的构造函数中引用activity怎么样? 像

    public YourArrayAdapter(YourActivity a){
         mActivity = a;
    }
    

    并从 onClickMethod 中引用 mActivity?

    在 YourActivity 中,您可以从那里调用 onItemButtonClicked() 方法。

    【讨论】:

      猜你喜欢
      • 2019-04-20
      • 2020-07-01
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多