【发布时间】:2016-11-10 16:28:51
【问题描述】:
我的 ArrayAdapter 在 View 下有两个 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;
}
}
【问题讨论】:
标签: android listview android-arrayadapter onclicklistener