0
Retrofit2を使用してデータをデータベースにアップロードするAndroidアプリケーションを作成しています。私がデータを提出すると、データベースに送られますが、エラーは常には、のインタフェースの引数なしコンストラクタを呼び出すことができません。私はさまざまなソリューションを探してみましたが、うまくいかないようです。Retrofit 2.0 - インターフェイス用の引数なしコンストラクタを呼び出すことができません
は、これは私のAPIのクラスです:
import javax.xml.transform.Result;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface RegisterAPI {
@FormUrlEncoded
@POST("insertText.php")
retrofit2.Call<Result> createUser(
@Field("name") String name,
@Field("age") String age);
}
そして、これは私のInsertActivityクラスです:
public static final String ROOT_URL= "https://MYURL/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_insert);
editTextName = (EditText) findViewById(R.id.editTextName);
editTextAge = (EditText) findViewById(R.id.editTextAge);
buttonRegister = (Button) findViewById(R.id.buttonRegister);
buttonRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
insertUser();
}
});
}
public void insertUser(){
String name = editTextName.getText().toString().trim();
String age = editTextAge.getText().toString().trim();
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ROOT_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
RegisterAPI service = retrofit.create(RegisterAPI.class);
Call<Result> call = service.createUser(
name,
age
);
call.enqueue(new Callback<Result>() {
@Override
public void onResponse(Call<Result> call, Response<Result> response) {
Toast.makeText(getApplicationContext(), "SUCCESS", Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(Call<Result> call, Throwable t) {
Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
はい、あなたは正しいです。助けてくれてありがとう! –