Ich möchte von URL-Daten erhaltenFehler erhalten Daten von retrofit2
http://cloud.traffy.in.th/apis/apitraffy.php?api=get_bus_line_info&appid=51248f9a&bus_line={bus_line}
und {bus_line}
von EditText
Beispiel
http://cloud.traffy.in.th/apis/apitraffy.php?api=get_bus_line_info&appid=51248f9a&bus_line=17
aber ich versuche, Daten von retrofit2 bekommen und Jetzt bekomme ich Fehler
D/Resultttt: Nicht gefunden
Bus.java
public class Bus {
@SerializedName("bus_line")
@Expose
private String busLine;
@SerializedName("start")
@Expose
private String start;
@SerializedName("end")
@Expose
private String end;
@SerializedName("vehicle_type")
@Expose
private String vehicleType;
@SerializedName("owner")
@Expose
private String owner;
@SerializedName("route_type")
@Expose
private String routeType;
@SerializedName("bus_line_id")
@Expose
private String busLineId;
public String getBusLine() {
return busLine;
}
public void setBusLine(String busLine) {
this.busLine = busLine;
}
....
}
Getbus.java
public interface Getbus {
@GET("apis/apitraffy.php")
Call<Bus> select(@Query("api") String api, @Query("appid") String appId, @Query("bus_line") String bus_line);
}
und MainActivity.java
public class MainActivity extends AppCompatActivity {
Button button;
EditText editText;
TextView textView;
private Getbus getbus;
private String BASE_URL = "http://cloud.traffy.in.th/";
private String TAG = "fong";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
editText = (EditText) findViewById(R.id.editText);
textView = (TextView) findViewById(R.id.textView);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
getbus = retrofit.create(Getbus.class);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String store = editText.getText().toString(); //////store=17
loadBus(store);
}
});
}
private void loadBus(String bus_line){
Call<Bus> call = getbus.select(api, appId, bus_line);
call.enqueue(new Callback<Bus>() {
@Override
public void onResponse(Call<Bus> call, Response<Bus> response) {
// displayBus(response.body());
if (response.isSuccessful()){
Log.d("Result", response.body().getBusLine());
}else
{
Log.d("Resultttt",response.message());
}
}
@Override
public void onFailure(Call<Bus> call, Throwable t) {
Log.e(TAG,"Errorr: " + t.getMessage());
}
});
}
private void displayBus(Bus showBus){
if(showBus != null){
String data = showBus.getBusLine();
textView.setText(data);
}else {
textView.setText("No Busline");
}
}
}
Ich mag Text von EditText erhalten und zu {bus_line}
für Show-Daten
Dank für Ihre Hilfe ersetzen!
Danke, Wenn ich das ändern, aber ich habe keine Ahnung, Daten von EditText zu erhalten und ersetzen @Query ("bus_line"), Wie ändere ich? , Entschuldigung, ich bin Neuling über Android –
Fragen Sie, wie man den Wert eines 'EditText' erhalten? Wenn ja, bin ich sicher, dass eine Suche Sie innerhalb von Minuten zur Antwort führt. Es ist auch möglich, dass Sie nicht genau wissen, wie Retrofit funktioniert. Sie rufen 'getBus' auf und übergeben die entsprechenden Argumente. – nasch
Ich habe einen Beitrag bearbeitet und bekomme einen neuen Fehler, bitte überprüfen Sie mich. Danke –