버튼이있는 시트가 있습니다. 시트의 요소에 이벤트 핸들러를 지정합니다. 당신이 그에게 입장을 줄 때. 하지만 시트의이 요소에있는 버튼에 이벤트를 할당해야합니다. 나는 어댑터에서 그것을하고 그것을 누르면됩니다. 그러나 시트의 어떤 요소가 눌려 졌는지 어떻게 결정합니까?버튼 요소 목록보기 누르기
class RecordAdapter extends BaseAdapter implements View.OnClickListener {
MediaPlayer mediaPlayer;
private LayoutInflater inflater;
ArrayList<RecordBean> recordBeans;
Context ctx;
public RecordAdapter(final Context ctx, ArrayList<RecordBean> recordBeans) {
this.recordBeans =recordBeans;
this.ctx=ctx;
inflater = LayoutInflater.from(ctx);
}
@Override
public int getCount() {
return recordBeans.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder holder;
if (convertView == null) {
view = inflater.inflate(R.layout.recorditem, parent, false);
holder = new ViewHolder();
holder.date = (TextView) view.findViewById(R.id.recordate);
holder.from = (TextView) view.findViewById(R.id.recordFrom);
holder.to = (TextView) view.findViewById(R.id.recordTo);
holder.seekBar = (SeekBar) view.findViewById(R.id.seekBar);
holder.start = (Button) view.findViewById(R.id.btnStart);
holder.stop = (Button) view.findViewById(R.id.btnStop);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.date.setText(" " + recordBeans.get(position).getDate());
holder.from.setText(" " + recordBeans.get(position).getFrom());
holder.to.setText(" " + recordBeans.get(position).getTo());
holder.start.setOnClickListener(this);
holder.stop.setOnClickListener(this);
return view;
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btnStart:
mediaPlayer = MediaPlayer.create(ctx,Uri.parse(recordBeans.get(3).getFile()));
mediaPlayer.start();
break;
}
}
private static class ViewHolder {
TextView date;
TextView from;
TextView to;
SeekBar seekBar;
Button start;
Button stop;
}
}
}
대신 recordBeans.get(3).getFile()
나는 stop
에 대한
설정하여 버튼'onClickListner' 내부 클래스로와의 getView'에'의 getView (.....)'당신이 –
'position' 변수에 위치를 전달 (...)'메소드가 그것을 사용합니다. 더 익명의 내부 클래스를 사용하십시오. – Rustam