HipólitoHuaylla:
ヘルプは、私が持っていることを次のコードでは、次のメッセージを取得してください。
listaFinal = (ArrayList<PuntoNota>) getIntent().getSerializableExtra("miLista");
AdapterDatos adapter = new AdapterDatos(this, listaFinal);
PuntoNota.java
public class PuntoNota implements Serializable{
private String punto;
private String nota;
public PuntoNota (String punto, String nota){
this.punto = punto;
this.nota = nota;
}
public String getPunto(){
return punto;
}
public String getNota(){
return nota;
}
}
AdapterDatos:
public AdapterDatos(Context context, ArrayList<PuntoNota> puntoNotaList) {
this.context = context;
this.puntoNotaList = puntoNotaList;
}
アプリケーションがうまく機能しているが、私は、次のメッセージが表示されます。
未確認のキャスト: 'java.util.ArrayListの'から'java.io.Serializableの'小さい...(Ctrlキー+ F1)。
(ArrayListを)getIntent():このコードについて。getSerializableExtra( "はmyList"); このメッセージを削除するか、または非表示にすることをお勧めでしょうか?
チュオン息子:
根本原因:これは、IDEからの警告でgetSerializableExtra
返しSerializable
、あなたがに変換しようとしていますArrayList<PuntoNota>
。それは投げるかもしれないClassCastExceptionが programeは、あなたの期待型にキャストできない場合は、実行時に。
ソリューション:では、あなたのクラスべき道具、周りのユーザー定義のオブジェクトを渡すには、AndroidのParcelable
代わりのSerializable
インタフェース。
class PuntoNota implements Parcelable {
private String punto;
private String nota;
public PuntoNota(String punto, String nota) {
this.punto = punto;
this.nota = nota;
}
protected PuntoNota(Parcel in) {
punto = in.readString();
nota = in.readString();
}
public String getPunto() {
return punto;
}
public String getNota() {
return nota;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(punto);
dest.writeString(nota);
}
public static final Creator<PuntoNota> CREATOR = new Creator<PuntoNota>() {
@Override
public PuntoNota createFromParcel(Parcel in) {
return new PuntoNota(in);
}
@Override
public PuntoNota[] newArray(int size) {
return new PuntoNota[size];
}
};
}
ページを送信するには
ArrayList<PuntoNota> myList = new ArrayList<>();
// Fill data to myList here
...
Intent intent = new Intent();
intent.putParcelableArrayListExtra("miLista", myList);
受信機側では
ArrayList<? extends PuntoNota> listaFinal = getIntent().getParcelableArrayListExtra("miLista");