我在我的ArrayAdapter View中有两个OnClickListeners。我怎么能结合,在ArrayAdapter(查看)在Android上的两个OnClickListener
我有onClick行和onClick按钮,都在同一个ListView中。我想结合他们。为两者制作一个OnClickListener。点击时他们都转到相同的意图/页面。
不知道如何做到这一点,而不重复我的代码。
在此先感谢。
public class ListAdapter extends ArrayAdapter {
private List<ExerciseListModel> exModelList;
private int resource;
private LayoutInflater inflater;
public ListAdapter(Context context, int resource, List<ExerciseListModel> objects) {
super(context, resource, objects);
exModelList = objects;
this.resource = resource;
inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null){
holder = new ViewHolder();
convertView = inflater.inflate(resource, null);
holder.exTitle = (TextView)convertView.findViewById(R.id.myTitle);
holder.exBody = (TextView)convertView.findViewById(R.id.myBody);
holder.exId = (TextView)convertView.findViewById(R.id.myId);
holder.exDone = (TextView)convertView.findViewById(R.id.myCount);
holder.exIcon = (ImageView)convertView.findViewById(R.id.myIcon);
holder.btnStart = (Button)convertView.findViewById(R.id.btnStart);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
//onClick Row
convertView.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
String nid = exModelList.get(position).getNid();
String title = exModelList.get(position).getTitle();
String body = exModelList.get(position).getBody();
Intent intent = new Intent(ExerciseListActivity.this, ExerciseDetailsActivity.class);
intent.putExtra("nid", nid);
intent.putExtra("title", title);
intent.putExtra("body", body);
startActivity(intent);
}
});
//onClick Button
holder.btnStart.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
String nid = exModelList.get(position).getNid();
String title = exModelList.get(position).getTitle();
String body = exModelList.get(position).getBody();
Intent intent = new Intent(ExerciseListActivity.this, ExerciseDetailsActivity.class);
intent.putExtra("nid", nid);
intent.putExtra("title", title);
intent.putExtra("body", body);
startActivity(intent);
}
});
holder.exId.setText("ID: " + exModelList.get(position).getNid());
holder.exBody.setText(exModelList.get(position).getBody());
holder.exTitle.setText(exModelList.get(position).getTitle());
if(exModelList.get(position).getExercise_done().equals("[]")){
holder.exDone.setText(exercise_not_done);
holder.exIcon.setImageResource(R.drawable.exercise_not_started);
}else{
String exercise_count = exModelList.get(position).getExercise_done();
String ex_done = exercise_done + " " + exercise_count + " " + exercise_times_done;
holder.exDone.setText(ex_done);
holder.exIcon.setImageResource(R.drawable.exercise_started);
}
return convertView;
}
class ViewHolder{
private TextView exTitle;
private TextView exBody;
private TextView exId;
private ImageView exIcon;
private TextView exDone;
private Button btnStart;
}
}