Я извлек и проанализировал данные JSON с URL-адреса и отобразил их в ListView, но я не могу добавить onclicklistener в каждую строку. Я просто хочу иметь возможность выполнять действие при нажатии на строку, с данными, содержащимися в строке, чтобы получить всю информацию об этой строке в другом действии?
когда я запускаю код, приложение сразу останавливается !!! спасибо
public class DemandeAdapter extends BaseAdapter {
private Context context;
private ArrayList<DemandeModel> demandeModelArrayList;
public DemandeAdapter(Context context, ArrayList<DemandeModel> demandeModelArrayList) {
this.context = context;
this.demandeModelArrayList = demandeModelArrayList;
}
@Override
public int getViewTypeCount() {
return getCount();
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public int getCount() {
return demandeModelArrayList.size();
}
@Override
public Object getItem(int position) {
return demandeModelArrayList.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.demande, null, true);
holder.iv = (ImageView) convertView.findViewById(R.id.iv);
holder.id = (TextView) convertView.findViewById(R.id.id);
holder.name = (TextView) convertView.findViewById(R.id.name);
holder.desc = (TextView) convertView.findViewById(R.id.desc);
holder.date = (TextView) convertView.findViewById(R.id.date);
holder.listView = (ListView) convertView.findViewById(R.id.lv);
convertView.setTag(holder);
}else {
// the getTag returns the viewHolder object set as a tag to the view
holder = (ViewHolder)convertView.getTag();
}
Picasso.get().load(demandeModelArrayList.get(position).getImgURL()).into(holder.iv);
holder.id.setText("ID : "+demandeModelArrayList.get(position).getId());
holder.date.setText("Date : "+demandeModelArrayList.get(position).getDate());
holder.name.setText("Name : "+demandeModelArrayList.get(position).getNom());
holder.desc.setText("Description : "+demandeModelArrayList.get(position).getDescription());
holder.listView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, demandeDetails.class);
intent.putExtra("ID",demandeModelArrayList.get(position).getId());
intent.putExtra("Date",demandeModelArrayList.get(position).getDate());
intent.putExtra("Name",demandeModelArrayList.get(position).getNom());
intent.putExtra("Description",demandeModelArrayList.get(position).getDescription());
intent.putExtra("Image",demandeModelArrayList.get(position).getImgURL());
context.startActivity(intent);
}
});
return convertView;
}
private class ViewHolder {
protected TextView id,name,desc,date;
protected ImageView iv;
private ListView listView;
}
}
я делаю это мин, мой класс адаптера не в моей деятельности !!!
И это другой вид деятельности, где я хочу отобразить данные
public class demandeDetails extends AppCompatActivity implements Serializable {
protected TextView id,name,desc,date;
protected ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demande_details);
id = (TextView)findViewById(R.id.demande_Id);
name = (TextView)findViewById(R.id.demande_Name);
desc = (TextView)findViewById(R.id.demande_Desc);
date = (TextView)findViewById(R.id.demande_Date);
img = (ImageView)findViewById(R.id.picture_demande);
Intent intent = getIntent();
int imagee = intent.getExtras().getInt("Image");
String idd = intent.getExtras().getString("ID");
String namee = intent.getExtras().getString("Name");
String descc = intent.getExtras().getString("Description");
String datee = intent.getExtras().getString("Date");
img.setImageResource(imagee);
id.setText(idd);
name.setText(namee);
desc.setText(descc);
date.setText(datee);
}
}