【发布时间】:2017-11-24 01:47:52
【问题描述】:
我的应用程序中有三个活动。 A->B->C
在Activity A:我从用户那里获取一些数据并添加这些数据NameValuePair。
我在Activity B 做了一些其他的操作。在Activity C 之后,我想http 发布NameValuePair。但是,我不能将 NameValuePair 一个类传递给另一个类。
我试过这个解决方案:solution
在Activity A:
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>
如何将 NameValuePair 传递给另一个活动?
【问题讨论】:
-
将
ArrayList<NameValuePair>更改为ArrayList<BasicNameValuePair> -
我收到一个错误:
Wrong 2nd argument type. Found: 'java.util.ArrayList<org.apache.http.message.BasicNameValuePair>', required: 'java.util.ArrayList<? extends android.os.Parcelable>@Enzokie -
@user8654574 使用您的
BasicNameValuePair类的完全限定名,即类名及其包名。 -
对不起,我听不懂你。 @Waqas
-
将
ArrayList<BasicNameValuePair>更改为ArrayList<package-name.BasicNameValuePair>
标签: java android basicnamevaluepair