1
私のアプリケーションには3つのアクティビティがあります。 A
->
B
->
C
NameValuePairをandroidの別のアクティビティに渡すにはどうすればいいですか?
Activity A
では:私は、ユーザーからいくつかのデータを取得し、それらのデータのNameValuePairを追加しています。 Activity B
でいくつかの操作を行います。その後、Activity C
で、httpをNameValuePairに投稿します。しかし、NameValuePairクラスを別のクラスに渡すことはできません。
私は、このソリューションを試してみました:Activity A
でsolution
:
ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair("username", username));
nameValuePairs.add(new BasicNameValuePair("name", name));
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
intent.putParcelableArrayListExtra ("nvp", (ArrayList<? extends Parcelable>) nameValuePairs);
startActivity(intent);
}
});
BasicNameValuePair.java
:
public class BasicNameValuePair implements Parcelable {
private int mData;
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
public static final Parcelable.Creator<BasicNameValuePair> CREATOR
= new Parcelable.Creator<BasicNameValuePair>() {
public BasicNameValuePair createFromParcel(Parcel in) {
return new BasicNameValuePair(in);
}
public BasicNameValuePair[] newArray(int size) {
return new BasicNameValuePair[size];
}
};
private BasicNameValuePair(Parcel in) {
mData = in.readInt();
}
}
私は私のActivity A:
Error:(57, 94) error: incompatible types: ArrayList<NameValuePair> cannot be converted to ArrayList<? extends Parcelable>
でエラーが出ます210
別のアクティビティをNameValuePairに渡すにはどうすればよいですか?この問題については
変更 'のArrayList <のNameValuePair>'に 'のArrayList' –
Enzokie
を働くことを願っています: '間違った第二引数の型を。見つかった: 'java.util.ArrayList'、必須: 'java.util.ArrayList <? android.os.Parcelable> '@Enzokie –
user8654574
@ user8654574クラス名である' BasicNameValueP air'クラスの完全修飾名をパッケージ名とともに使用します。 – Waqas