Я пытаюсь реализовать функцию тегов / @ упоминаний, используя модификацию в Android.Я знаю, что у Linkedin есть Spyglass для этой цели, но я хочу попробовать сам.
Это пример структуры JSON для @ GET
{
"audience": 1,
"author": {
"avatarURL": "",
"firstName": "Aidan",
"profileId": "6e655ee0-ea71-4f3c-a145-d504e6e053db",
"rank": 0,
"score": 0,
"surname": "Test",
"trades": [],
"verified": false
},
"createdTimestamp": "Mon, 05 Nov 2018 16:20:53 GMT",
"likes": [],
"numberOfComments": 1,
"photos": [],
"pinned": false,
"postId": "5825ce12-338f-48e0-8749-11e67f6560d7",
"postText": "@Matt Test1 ",
"trades": [],
"userLikesPost": false,
"videos": [],
"taggedUsers": [
{
"userId": "d0580bfa-9b4e-494a-bed6-11267001b1f0"
}
]
}
идля @POST:
{
"Category": {
"Skills":[
{"SkillId": "C8BBBFEA-1B1D-4AE1-903E-3D9ED2C5506B"}
],
"TradeId": "4E26267E-5DF5-44FE-8268-3DF19E05294E"
},
"Anonymous": false,
"QuestionText": "test question 22102",
"QuestionTitle": "test title",
"TaggedUserIds": ["336CE5BC-470C-4D28-82CB-F95F49254B6A", "154EE2C2-76CD-4DA5-921F-8876D3A2D26B"]
}
это конечные точки, которые я использовал
//Tagged User
@GET("api/posts/{postId}/taggedUsers")
Call<TaggedUser> getTaggedUser (@Path("postId") String postId );
@POST("api/posts/{postId}/userId")
Call <TaggedUserIds> addTaggedUser (@Path("postId")String postId, @Body TaggedUserIds taggedUserIds);
, чтобы получить результаты (в конечном итоге) в представлении переработчика, котороеможет использоваться для выбора пользователя для пометки.
это фрагмент, который я буду использовать для вызова taggingList
if(charSequence.toString().contains("@")){
mTradeZappAPI.getTaggedUser(mTaggedUsers.getUserId()).enqueue(new Callback<TaggedUser>() {
@Override
public void onResponse(Call<TaggedUser> call, Response<TaggedUser> response) {
if(response.isSuccessful()){
//Display results in popUp window and allow user to select. Embed this into the mPostText EditText window.
}
}
@Override
public void onFailure(Call<TaggedUser> call, Throwable t) {
}
});
}
пример класса модели:
public class TaggedUser implements Parcelable {
@SerializedName("userId")
@Expose
private String userId;
public final static Parcelable.Creator<TaggedUser> CREATOR = new Creator<TaggedUser>() {
@SuppressWarnings({
"unchecked"
})
public TaggedUser createFromParcel(Parcel in) {
return new TaggedUser(in);
}
public TaggedUser[] newArray(int size) {
return (new TaggedUser[size]);
}
}
;
protected TaggedUser(Parcel in) {
this.userId = ((String) in.readValue((String.class.getClassLoader())));
}
/**
* No args constructor for use in serialization
*
*/
public TaggedUser() {
}
/**
*
* @param userId
*/
public TaggedUser(String userId) {
super();
this.userId = userId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
@Override
public String toString() {
return new ToStringBuilder(this).append("userId", userId).toString();
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeValue(userId);
}
public int describeContents() {
return 0;
}
}
У меня возникают проблемы с возвратом каких-либо данных, и я знаю, что это связано с настройкой между моим классом API и способом, которым я вызываю БД.