如果点击一个浮动按钮,我想发布一些数据到我的api。 我正在使用改造。这是我访问我的活动浮动操作按钮:FloatingActionButton上的Android后post to api点击
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inquiry);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ButterKnife.bind(this);
service = RetrofitBuilder.createService(ApiService.class);
tokenManager = TokenManager.getInstance(getSharedPreferences("prefs", MODE_PRIVATE));
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
这是我ApiService看起来像:
public interface ApiService {
@POST("device")
@FormUrlEncoded
Call<PostResponse> device(@Field("device_name") String device_name,
@Field("device_producer") String device_producer,
@Field("device_pixel_width") int device_pixel_width,
@Field("device_pixel_height") int device_pixel_height,
@Field("device_ratio_width") int device_ratio_width,
@Field("device_ratio_height") int device_ratio_height,
@Field("device_android_version") char device_android_version,
@Field("device_status") int device_status);
@GET("posts")
Call<PostResponse> posts();
}
这是包含getter和setter Post类:
public class Post {
int id;
String title;
String body;
String device_name;
String device_producer;
int device_pixel_width;
int device_pixel_height;
int device_ratio_width;
int device_ratio_height;
char device_android_version;
int device_status;
public String getDeviceName() { return device_name; }
public void setDeviceName(String device_name) { this.device_name = device_name; }
public String getDeviceProducer() { return device_producer; }
public void setDeviceProducer(String device_producer) { this.device_producer = device_producer; }
public int getDevicePixelWidth() { return device_pixel_width; }
public void setDevicePixelWidth(int device_pixel_width) { this.device_pixel_width = device_pixel_width; }
public int getDevicePixelHeight() { return device_pixel_height; }
public void setDevicePixelHeight(int device_pixel_height) { this.device_pixel_height = device_pixel_height; }
public int getDeviceRatioWidth() { return device_ratio_width; }
public void setDeviceRatioWidth(int device_ratio_width) { this.device_ratio_width = device_ratio_width; }
public int getDeviceRatioHeight() { return device_ratio_height; }
public void setDeviceRatioHeight(int device_ratio_height) { this.device_ratio_height = device_ratio_height; }
public int getDeviceAndroidVersion() { return device_android_version; }
public void setDeviceAndroidVersion(char device_android_version) { this.device_android_version = device_android_version; }
public int getDeviceStatus() { return device_status; }
public void setDeviceStatus(int device_status) { this.device_status = device_status; }
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
}
PostResponse:
public class PostResponse {
List<Post> data;
public List<Post> getData() {
return data;
}
}
编辑
我尝试以下操作:
service = RetrofitBuilder.createService(ApiService.class);
public void onClick(View view) {
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int device_pixel_width = size.x;
int device_pixel_height = size.y;
call = service.device(android.os.Build.MODEL, android.os.Build.MANUFACTURER, device_pixel_width, device_pixel_height, metrics.heightPixels, metrics.widthPixels, android.os.Build.VERSION.SDK_INT, 1);
System.out.println("PUPS: " + call);
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
但是我在控制台得到这个消息:
编辑:
现在看起来像这样,但我必须在onResponse函数中做些什么才能将数据保存在我的api数据库中?
当前进入onFailure方法。
call = service.device(android.os.Build.MODEL,
android.os.Build.MANUFACTURER,
device_pixel_width, device_pixel_height,
metrics.heightPixels, metrics.widthPixels,
android.os.Build.VERSION.SDK_INT, 1);
call.enqueue(new Callback<PostResponse>() {
@Override
public void onResponse(Call<PostResponse> call, Response<PostResponse> response) {
Log.w(TAG, "onResponse: " + response);
if(response.isSuccessful()){
} else {
}
}
@Override
public void onFailure(Call<PostResponse> call, Throwable t) {
}
}
那么问题是什么?问题是什么? – Piyush
@Piyush我不知道如何发布一些数据后,点击按钮,只是随机数据是好例如 – utdev