私はこの回答を使用して、マルチリストデータを追加する方法を説明します。 How Lists (specifically, RecyclerView with CardViews) in Android work。私はAPIにJSON Stringをポストする必要があります。しかし、ユーザーオブジェクトからJSON文字列(ユーザー名)を取得することはできません。 DeliveryStaffオブジェクト>ユーザオブジェクト>ユーザ名からユーザ名を取得する方法。それはユーザー名が必要だと言う。私はmyListを投稿するので、ユーザーオブジェクトです。ログに記録すると、ユーザーオブジェクトが表示されます。しかし、私はユーザー名を取得することはできません。JSON Stringをアンドロイドに投稿するには?
DeliveryStaff.java
[
{
"id": 30,
"user_id": "292",
... etc
"user": {
"id": 292,
"name": "Peter",
... etc
}
},
{
"id": 51,
"user_id": "256",
... etc
"user": {
"id": 256,
"name": "Jhon Staff",
... etc
}
}
]
ChooseMultiStaff.java
ArrayList<DeliveryStaff> myList = new ArrayList<DeliveryStaff>();
lvList = (ListView) findViewById(R.id.lvList);
multiStaffListAdapter = new multiStaffListAdapter(ChooseMultiStaff.this, myList);
lvList.setAdapter(multiListAdapter);
// add function
// multiDeliveryStaffList - come from staff spinner onItemSelected (DeliveryStaff multiDeliveryStaffList = (DeliveryStaff) parent.getAdapter().getItem(position);)
DeliveryStaff mLog = new DeliveryStaff();
mLog.setUser(multiDeliveryStaffList.getUser());
myList.add(mLog);
multiListAdapter.notifyDataSetChanged();
// post function
private void PostAddStaff() {
ArrayList<DeliveryStaff> uploadMultiDeliverStaff = new ArrayList<DeliveryStaff>();
for (DeliveryStaff dsl : myList) {
if (dsl.getId() == null) {
uploadMultiDeliverStaff.add(dsl);
}
}
Log.i("List", new Gson().toJson(myList));
NetworkEngine.getInstance().postAddStaff(new Gson().toJson(myList), txt_date_time_display.getText().toString(), new Callback<JsonObject>() {
@Override
public void success(JsonObject jsonObject, Response response) {
// finish - done
}
});
}
@FormUrlEncoded
@POST("/api/addstaffs")
void postAddStaff(
@Field("json") String json,
@Field("pick_up_time") String pick_up_time,
Callback<JsonObject> callback);
staffname ["51","56"]
pick_up_time 2016-10-31 12:04
を試してみてください?エラーはありますか? –
ユーザーオブジェクトを返します。ユーザーオブジェクトからユーザー名を取得できません。 –
ユーザー層を表示してください。 –