Итак, у меня есть Activity A и Activity B, в «A» мне нужно перейти к «B», а затем добавить элементы Food в их arrayList, а затем передать этот список массивов обратно в Activity A, как бы у меня ни возникали проблемы с моим текущая настройка
Это намерение от А до Б.
Intent i = new Intent(OrderMain.this , OrderAdd.class);
startActivityForResult(i,1);
Это намерение возврата от B к A
Intent returnIntent = new Intent();
Bundle b = new Bundle();
b.putSerializable("results", orderArray);
returnIntent.putExtras(b);
setResult(Activity.RESULT_OK, returnIntent);
finish();
И, наконец, это мой onActivityResults In A
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == Activity.RESULT_OK){
Bundle b = getIntent().getExtras();
ArrayList<Food> test = new ArrayList<>();
test = (ArrayList<Food>) b.getSerializable("results");
setOrderArray(test);
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}
setOrderArray - это просто функция для установки массива в новый возвращаемый массив
А это пищевой объект
import java.io.Serializable;
public class Food implements Serializable{
private String name;
private int cost;
private int quantity;
public Food( String name, int cost, int quantity){
this.name = name;
this.cost = cost;
this.quantity = quantity;
}
public void setQuantity(int quantity)
{
this.quantity = quantity;
}
public void setName(String name)
{
this.name = name;
}
public void setCost(int cost)
{
this.cost = cost;
}
public int getTotal()
{
return cost * quantity;
}
public String getName ()
{
return name;
}
public int getCost()
{
return cost;
}
public int getQuantity()
{
return quantity;
}
public void addQuantity()
{
quantity++;
}
public void decQuantity()
{
quantity--;
}
}
текущая проблема, которую я имею, находится в этой строке кода:
test = (ArrayList<Food>) b.getSerializable("results");
Он говорит, что есть "Unchecked Cast", и предполагаемое использование для этого не работает должным образом, любая помощь будет принята с благодарностью.
@SonTruong не получил никаких данных и выдает classcastexception
пожалуйста, проверьте мой ответ.




Не используйте Serializable, вместо этого используйте Parcelable. Parcelable - король скорости, и убедитесь, что ваш объектный класс реализует Parcelable.
Вместо этого используйте раздел комментариев, если вы не собираетесь объяснять свое решение.
Было предложено использовать Parcelable, и если вы хотите знать почему, посмотрите это: developerphil.com/parcelable-vs-serializable
Так в чем твоя проблема? это о предупреждении от IDE или вы не получили данные в Activity A?