[英]Serializable not sending putExtra in intent
Why is my putExtra in my intent is not working no values are being passed in the intent. 为什么我的意图中的putExtra无效,没有在意图中传递任何值。 All of the values are being present on the listview but when I click an item on the listview when I'm going to the
DetailActivity
there are no values now. 所有值都出现在列表视图中,但是当我去
DetailActivity
时单击列表视图上的项目时,现在没有值。 Thanks in advance for the answer. 在此先感谢您的回答。
@Override
public void processFinish(String s) {
Log.d(TAG,s);
carList = new JsonConverter<Cars>().toArrayList(s, Cars.class);
BindDictionary<Cars> dict = new BindDictionary<Cars>();
dict.addDynamicImageField(R.id.ivImg1, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return product.Image;
}
}, new DynamicImageLoader() {
@Override
public void loadImage(String url, ImageView imageView) {
ImageLoader.getInstance().displayImage(url, imageView); // Default options will be used
}
});
dict.addStringField(R.id.tvCarModel, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Car Model: " + product.Car_Model;
}
});
dict.addStringField(R.id.carID, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return ""+product.Car_No;
}
});
dict.addStringField(R.id.tvCarType, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Car Type: " + product.Car_Type;
}
});
dict.addStringField(R.id.tvCapacity, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Capacity: " + product.Capacity;
}
});
dict.addStringField(R.id.tvFuelType, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Fuel Type: " + product.FuelType;
}
});
dict.addStringField(R.id.tvPlateNumber, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Plate Number: " + product.PlateNumber;
}
});
dict.addStringField(R.id.tvPoster, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Posted by: " + product.owner;
}
});
dict.addStringField(R.id.tvPrice, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Price: " + product.carPrice;
}
});
dict.addStringField(R.id.tvFrom1, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Range: " + product.rangeFrom+" ";
}
});
dict.addStringField(R.id.tvTo1, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return " " + product.rangeTo;
}
});
dict.addStringField(R.id.tvDriver, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Driver: " + product.carDriver;
}
});
dict.addStringField(R.id.tvMaxDays, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return "Max Days: " + product.carDays;
}
});
dict.addStringField(R.id.tvDriverFirst, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return " " + product.driverFirstName;
}
});
dict.addStringField(R.id.tvDriverMiddle, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return " " + product.driverMiddleName;
}
});
dict.addStringField(R.id.tvDriverLast, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return " " + product.driverLastName;
}
});
dict.addStringField(R.id.tvOwnerContact, new StringExtractor<Cars>() {
@Override
public String getStringValue(Cars product, int position) {
return " " + product.ownerContact;
}
});
adapter = new FunDapter<>(
getActivity(), carList, R.layout.layout_list, dict);
lvCars.setAdapter(adapter);
lvCars.setOnItemClickListener(this);
if(swipeCar.isRefreshing()){
swipeCar.setRefreshing(false);
}
adapter.notifyDataSetChanged();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Cars selectedCars = carList.get(position);
Intent in = new Intent(getActivity(), DetailActivity.class);
in.putExtra("cars2", selectedCars);
startActivity(in);
}
final Cars Cars = (Cars)getIntent().getSerializableExtra("cars2");
try {
if (Cars != null) {
tvDriver321.setText(Cars.carDriver);
tvMaxDays.setText(Cars.carDays);
tvCarModel.setText(Cars.Car_Model);
tvCarType.setText( Cars.Car_Type);
tvCapacity.setText(""+Cars.Capacity);
tvFuelType.setText(Cars.FuelType);
tvPlateNumber.setText(Cars.PlateNumber);
tvPoster.setText(Cars.owner);
tvPrice.setText(Cars.carPrice);
tvCarID.setText(""+Cars.Car_No);
tvFrom.setText(Cars.rangeFrom);
tvTo.setText(Cars.rangeTo);
tvDriver.setText(Cars.driverFirstName);
tvDriverLast.setText(Cars.driverLastName);
tvContact.setText(Cars.ownerContact);
Log.d(TAG,Cars.Car_Model);
ImageLoader.getInstance().displayImage(Cars.Image, ivImage);
}
}catch (Exception e){
System.out.println("Error in details: " + e.toString());
}
public class Cars implements Serializable {
@SerializedName("Car_No")
public int Car_No;
@SerializedName("Car_Model")
public String Car_Model;
@SerializedName("Car_Type")
public String Car_Type;
@SerializedName("Capacity")
public int Capacity;
@SerializedName("Image")
public String Image;
@SerializedName("fuelType")
public String FuelType;
@SerializedName("carPlatenuNumber")
public String PlateNumber;
@SerializedName("owner")
public String owner;
@SerializedName("carPrice")
public String carPrice;
@SerializedName("resDate")
public String resDate;
@SerializedName("resTime")
public String resTime;
@SerializedName("resLocation")
public String resLocation;
@SerializedName("rangeFrom")
public String rangeFrom;
@SerializedName("rangeTo")
public String rangeTo;
@SerializedName("carDriver")
public String carDriver;
@SerializedName("carDays")
public String carDays;
@SerializedName("driverFirstName")
public String driverFirstName;
@SerializedName("driverMiddleName")
public String driverMiddleName;
@SerializedName("driverLastName")
public String driverLastName;
@SerializedName("ownerContact")
public String ownerContact;
}
Try 尝试
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Car selectedCars = carList.get(position);
Intent in = new Intent(getActivity(), DetailActivity.class);
in.putExtra("cars2", selectedCars);
startActivity(in);
}
In other Activity
: 在其他
Activity
:
final Car Cars = getIntent().getSerializableExtra("cars2");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.