2017-05-05 45 views
0

得到的数据我想从EditText上错误的retrofit2

例如

http://cloud.traffy.in.th/apis/apitraffy.php?api=get_bus_line_info&appid=51248f9a&bus_line=17

http://cloud.traffy.in.th/apis/apitraffy.php?api=get_bus_line_info&appid=51248f9a&bus_line={bus_line}

{bus_line}从URL中获取数据,但我尝试获得通过retrofit2数据和现在我得到错误

d/Resultttt:未找到

Bus.java

公共类总线{

@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); 
} 

和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"); 
    } 
    } 
} 

我想从得到的EditText文字和替换{bus_line}的数据显示

感谢您的帮助!

回答

0

错误消息告诉你到底你做错了什么。您的界面应该更像这样:

public interface Getbus { 
    @GET("apis/apitraffy.php") 
    Call<Bus> select(@Query("api") String api, @Query("appid") String appId, @Query("bus_line") String bus_line); 
} 

如果您不想每次都传递API和应用程序ID,请检查请求拦截器。

对于日志记录,添加此到的build.gradle依赖关系:compile 'com.squareup.okhttp3:logging-interceptor:3.6.0'

,并在那里你打造改装:

final OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); 

      HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); 
      loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
      clientBuilder.addInterceptor(loggingInterceptor); 

final OkHttpClient client = clientBuilder.build(); 
Retrofit retrofit = retrofitBuilder 
       .baseUrl(params.url) 
       .client(client) 
       .build(); 
+0

谢谢,如果我改变了,但我不知道从EditText上获取数据并更换@Query(“bus_line”),如何更改? ,抱歉,我是新手关于安卓 –

+0

你问如何获得一个'EditText'的价值?如果是这样,我肯定搜索会在几分钟内引导你回答。您也可能不清楚改造工作的方式。你调用'getBus'并传入适当的参数。 – nasch

+0

我编辑了一篇文章,发现新错误,请检查我。谢谢 –