Мне нужно реализовать функцию приглашения в моем приложении Android, но у меня нет предварительных знаний для этого. Идея состоит в том, что у меня есть Edittext
(или, может быть, другое поле), где пользователь может искать других пользователей, которые зарегистрированы, и, щелкая по ним, они появляются под полем поиска в виде списка. И, нажав на кнопку приглашения, каждый в списке получает уведомление / приглашение. Как это можно сделать с помощью модернизации? Это должно быть примерно так, как для каждого написанного символа отправляется запрос API
и отображаются предложения. Я использую Laravel и Android(java).
У меня не так много кода, написанного здесь, потому что я не знаю, где и как начать. Вот запрос:
@GET("users")
Call<List<User>> getUsers(@Header("Authorization") String token);
Вот метод getUsers до сих пор в упражнении:
private void getUsers(){
Log.d(TAG, "onResponse: loadData called");
ApiService service = RetrofitBuilder.getRetrofitInstance().create(ApiService.class);
Call<List<User>> call = service.getUsers("Bearer "+token);
call.enqueue(new Callback<List<User>>() {
@Override
public void onResponse(@NonNull Call<List<User>> call, @NonNull Response<List<User>> response) {
try {
if (response.isSuccessful()){
Log.d(TAG, "onResponse: successful loadData called");
adapter = new UserAdapter(mContext, arrayList);
listView.setAdapter(adapter);
}
else{
Log.d(TAG, "onResponse: " + response.body());
}
}
catch (Exception e){
Toast.makeText(TeamAdminActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(@NonNull Call<List<User>> call, @NonNull Throwable t) {
Log.d("Response", "onFailure: " + t.toString());
}
});
}
Также фрагмент моего xml файла:
<TextView
android:id="@+id/invite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/activity_vertical_margin"
android:layout_marginTop="36dp"
android:layout_below="@id/team_title"
android:textSize="24sp"
android:textColor="@color/colorPrimary"
android:text="@string/invite_members" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/search"
style="@style/TextInputLayoutAppearance"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/invite"
android:layout_marginTop="10dp"
android:layout_marginStart="18dp"
android:layout_marginEnd="18dp"
android:hint="@string/search"
android:textSize="23sp"
app:boxStrokeColor="@color/colorPrimaryDark">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/search_et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/spinner"
android:hint="@string/event_name"
android:textSize="18sp" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/invite"
android:layout_toEndOf="@+id/search"/>
<TextView
android:id="@+id/invited"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/activity_vertical_margin"
android:layout_marginTop="36dp"
android:layout_below="@id/search"
android:textSize="24sp"
android:textColor="@color/colorPrimary"
android:text="@string/invited" />
<androidx.core.widget.NestedScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_below="@id/invited">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</androidx.core.widget.NestedScrollView>
<Button
android:id="@+id/create_team_btn"
android:layout_width="260dp"
android:layout_height="60dp"
android:layout_below="@+id/scroll_view"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:layout_marginBottom="14dp"
android:background="@drawable/my_color_button"
android:text="@string/invite"
android:textColor="@color/myWhite" />