2013-10-21 2 views
1

문제가 있습니다. 내 응용 프로그램에서 각 행에 대해 두 개의 Button이있는 사용자 지정 ListView가 있습니다. Button의 OnClickListner를 관리하려고하는 ArrayAdapter를 확장 한 클래스를 만들었지 만 작동하지 않습니다. 버튼을 누르면 아무 일도 일어나지 않습니다. 이 내 클래스 :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; 

} 

당신이 날 도와 드릴까요? 는 OnClickListener를을 decleration 전망을 createing 후

+0

convertView가 null이 아닌 경우 클릭 수신기가 설정되지 않습니다. – nurisezgin

답변

2

사용 토스트처럼

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

변화 당신의 getView 방법 주셔서 감사합니다;

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; 
}