2013-10-21 123 views
1

我遇到問題。 在我的應用程序中,我有一個自定義的ListView,每行有兩個按鈕。 我創建了一個類擴展ArrayAdapter,我試圖管理按鈕的OnClickListner,但它不起作用。如果我按下按鈕,沒有任何反應。 這是我的班級:ListView中的按鈕項目

public class AdapterMovimentazioni extends ArrayAdapter<ItemWithIdMov> { 

private Context context; 
private ArrayList<ItemWithIdMov> items; 
private LayoutInflater vi; 

public AdapterMovimentazioni(Context context, ArrayList<ItemWithIdMov> items) { 
    super(context, 0, items); 
    this.context = context; 
    this.items = items; 
    vi = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 
    ViewHolder holder; 
    final ItemWithIdMov i = items.get(position); 
    if (convertView == null) { 
     convertView = vi.inflate(R.layout.item_movimentazioni, null); 
     holder = new ViewHolder(); 
     holder.icon = (ImageView) convertView.findViewById(R.id.imageMov); 
     holder.data = (TextView) convertView.findViewById(R.id.DataMov); 
     holder.importo = (TextView) convertView.findViewById(R.id.ImportoMov); 
     holder.locale = (TextView) convertView.findViewById(R.id.localeMov); 
     holder.delete = (Button) convertView.findViewById(R.id.ButtonDeleteMov); 
     holder.set = (Button) convertView.findViewById(R.id.ButtonSetMov); 

     holder.delete.setTag(holder); 
     holder.delete.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(context, "DELETEEEEEE", Toast.LENGTH_LONG); 
      } 
     }); 

     holder.set.setTag(holder); 
     holder.set.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(context, "SET", Toast.LENGTH_LONG); 

      } 
     }); 
     convertView.setTag(holder); 

    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    if (i != null) { 
     holder.icon.setImageResource(i.getIcon()); 
     holder.data.setText(i.getData()); 
     holder.importo.setText(i.getImporto()); 
     holder.locale.setText(i.getLocName()); 
    } 

    return convertView; 
} 

private class ViewHolder { 

    public ViewHolder() { 

    } 

    protected Button delete; 
    protected Button set; 
    protected ImageView icon; 
    protected TextView data; 
    protected TextView importo; 
    protected TextView locale; 

} 

你能幫助我嗎? 謝謝

+0

如果convertView不爲空,您的點擊監聽器沒有設置。 – nurisezgin

回答

2

使用吐司像

Toast.makeText(context, "SET", Toast.LENGTH_LONG).show(); 
0

改變你的getview方法createing意見後decleration onClicklistener;

public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 
    ViewHolder holder; 
    final ItemWithIdMov i = items.get(position); 
    if (convertView == null) { 
     convertView = vi.inflate(R.layout.item_movimentazioni, null); 
     holder = new ViewHolder(); 
     holder.icon = (ImageView) convertView.findViewById(R.id.imageMov); 
     holder.data = (TextView) convertView.findViewById(R.id.DataMov); 
     holder.importo = (TextView) convertView.findViewById(R.id.ImportoMov); 
     holder.locale = (TextView) convertView.findViewById(R.id.localeMov); 
     holder.delete = (Button) convertView.findViewById(R.id.ButtonDeleteMov); 
     holder.set = (Button) convertView.findViewById(R.id.ButtonSetMov); 

     convertView.setTag(holder); 

    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 


     holder.delete.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(context, "DELETEEEEEE", Toast.LENGTH_LONG); 
      } 
     }); 

     holder.set.setTag(holder); 
     holder.set.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(context, "SET", Toast.LENGTH_LONG); 

      } 
     }); 

    if (i != null) { 
     holder.icon.setImageResource(i.getIcon()); 
     holder.data.setText(i.getData()); 
     holder.importo.setText(i.getImporto()); 
     holder.locale.setText(i.getLocName()); 
    } 

    return convertView; 
} 
相關問題