API Textgears - как? - PullRequest
       1

API Textgears - как?

0 голосов
/ 29 декабря 2018

Я занимаюсь разработкой приложения для грамматики Android с использованием Android Studio и использую Textgears в качестве API.Кто-нибудь знает, как применять textgears в api?У меня проблема с отображением ожидаемого результата.

Обновление: я добавляю свой код, а также использую Retrofit для доступа к сетевому вызову.

Service.class

public interface Service {

     @GET("/check.php?")
     Call<List<Errors>> readErrors(@Query("userInput") String userInput,
                              @Query("apiKey") String apiKey);

}

Fragment.class

public class Tab1Fragment_GrammarChecker extends Fragment {

@BindView(R.id.InputTextEditText)
EditText mInputGrammarEditText;

@BindView(R.id.ErrorsRecyclerView)
RecyclerView mErrorsRecyclerView;

List<Errors> errors = new ArrayList<>();

public ArrayList<Errors> errorArrayList = new ArrayList<>();

public String userInput = "I is an engeneer!";
public String apiKey = ""; //apiKey is confidential

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.tab1_grammar_checker, container, false);

    ButterKnife.bind(this, view);
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext());
    mErrorsRecyclerView.setLayoutManager(layoutManager);
    loadJson();
    return view;
}

@OnClick(R.id.checkGrammarButton)
public void setOnClick(View view){
    Toast.makeText(getActivity(), "Check Grammar", Toast.LENGTH_LONG).show();
}

public void loadJson(){
   // Service serviceAPI = Client.getClient();
    //Call<List<Errors>> loadErrorsCall = serviceAPI.readErrorsArray();

    Retrofit.Builder builder = new Retrofit.Builder()
            .baseUrl("https://api.textgears.com")
            .addConverterFactory(GsonConverterFactory.create());

    Retrofit retrofit = builder.build();

    Service serviceAPI = retrofit.create(Service.class);
    Call<List<Errors>> loadErrorsCall = serviceAPI.readErrors(userInput, apiKey);
    loadErrorsCall.enqueue(new Callback<List<Errors>>() {
        @Override
        public void onResponse(Call<List<Errors>> call, Response<List<Errors>> response) {
            errors = new ArrayList<>(response.body());
            Log.i("ORIG. ARRAY SIZE", String.valueOf(errors.size()));
            if (errors != null){
                for (int i = 0; i < 5; i++){
                    errorArrayList.add(errors.get(i));
                }

                Log.i("NEW ARRAY SIZE", String.valueOf(errorArrayList.size()));
            }

            mErrorsRecyclerView.setItemAnimator(new DefaultItemAnimator());
            mErrorsRecyclerView.setAdapter(new ResultAdapter(getContext(), errorArrayList));
        }

        @Override
        public void onFailure(Call<List<Errors>> call, Throwable t) {
            Log.i("Error: ", t.getMessage());
        }
    });
}
}

Adapter.class

public class ResultAdapter extends RecyclerView.Adapter<ResultAdapter.ResultViewHolder>{

Context mContext;
List<Photo> photoList = new ArrayList<>();
List<Errors> errorsList = new ArrayList<>();

public ResultAdapter (Context mContext, List<Errors> errorsList){
    this.errorsList = errorsList;
    this.mContext = mContext;
}


@Override
public ResultViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.result_card, viewGroup, false);
    return new ResultViewHolder(view);
}

@Override
public void onBindViewHolder(ResultViewHolder resultViewHolder, int i) {

    Errors errors = errorsList.get(i);
    resultViewHolder.mNumErrorsTextView.setText(errorsList.size());
    resultViewHolder.mIdErrorTextView.setText(errors.getId());
    resultViewHolder.mLengthErrorTextView.setText(errors.getLength());
    resultViewHolder.mBadErrorTextView.setText(errors.getBad());
}

@Override
public int getItemCount() {
    //return photoList.size();
    return errorsList.size();
}

public class ResultViewHolder extends RecyclerView.ViewHolder{

    TextView mNumErrorsTextView;
    TextView mIdErrorTextView;
    TextView mLengthErrorTextView;
    TextView mBadErrorTextView;

    public ResultViewHolder(@NonNull View itemView) {
        super(itemView);

        //ButterKnife.bind(this, itemView);
        mNumErrorsTextView = (TextView) itemView.findViewById(R.id.NumofErrorsTextView);
        mIdErrorTextView = (TextView) itemView.findViewById(R.id.ErrorIdTextView);
        mLengthErrorTextView = (TextView) itemView.findViewById(R.id.ErrorLengthTextView);
        mBadErrorTextView = (TextView) itemView.findViewById(R.id.ErrorBadTextView);
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...