国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Retrofit簡單的實例

2019-11-09 13:51:55
字體:
來源:轉載
供稿:網友

這篇博客面向的對象是Retrofit新手,如果是老手麻煩幫忙看一下代碼時候有可以修改得更好點,謝謝了!

對于新手來說,看一大篇文章之后,急需一個小小的項目來練手,然而網上的例子的代碼有點復雜,所以將我自己弄的小例子供新手學習,大家一起互相學習!(直接復制粘貼可用)

0準備工作

Android Stuido中下載插件GsonFormat,因為后面需要生成實體類。

AndroidManifest.xml

 <uses-permission android:name="android.permission.INTERNET" />

app.gradle中加入

compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.squareup.retrofit2:converter-gson:2.1.0'

1項目的框架

2bean

bean里主要放的是接收來的JSON實體對象。使用GsonFormat自動生成的,具體方法度娘一下就出來了。

public class Bean {    /**     * count : 3282     * description : 尾鰭分叉頗深,下葉較長     * disease :     * fcount : 0     * food :     * id : 10     * img : /food/150804/285158e45d996bbd47046ee2af2c7370.jpg     * keyWords : 青灰色 銀白色 甲殼類 成魚 菱形     * message : 鯧魚屬于鱸形目,鯧科。體短而高,極側扁,略呈菱形。頭較小,吻圓,口小,牙細。成魚腹鰭消失。尾鰭分叉頗深,下葉較長。體銀白色,上部微呈青灰色。以甲殼類等為食。     * name : 白鯧魚     * rcount : 0     * status : true     * summary :     * symptom :     * url : http://www.tngou.net/food/show/10     */    PRivate int count;    private String description;    private String disease;    private int fcount;    private String food;    private int id;    private String img;    private String keywords;    private String message;    private String name;    private int rcount;    private boolean status;    private String summary;    private String symptom;    private String url;    public int getCount() {        return count;    }    public void setCount(int count) {        this.count = count;    }    public String getDescription() {        return description;    }    public void setDescription(String description) {        this.description = description;    }    public String getDisease() {        return disease;    }    public void setDisease(String disease) {        this.disease = disease;    }    public int getFcount() {        return fcount;    }    public void setFcount(int fcount) {        this.fcount = fcount;    }    public String getFood() {        return food;    }    public void setFood(String food) {        this.food = food;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getImg() {        return img;    }    public void setImg(String img) {        this.img = img;    }    public String getKeywords() {        return keywords;    }    public void setKeywords(String keywords) {        this.keywords = keywords;    }    public String getMessage() {        return message;    }    public void setMessage(String message) {        this.message = message;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getRcount() {        return rcount;    }    public void setRcount(int rcount) {        this.rcount = rcount;    }    public boolean isStatus() {        return status;    }    public void setStatus(boolean status) {        this.status = status;    }    public String getSummary() {        return summary;    }    public void setSummary(String summary) {        this.summary = summary;    }    public String getSymptom() {        return symptom;    }    public void setSymptom(String symptom) {        this.symptom = symptom;    }    public String getUrl() {        return url;    }    public void setUrl(String url) {        this.url = url;    }}

3retrofit

IBeanService

public interface IBeanService {    @GET("show")    Call<Bean> getMenuById(@Query("id") String id);}@GET內的參數,是跟在baseURL后面的,所以該URL的具體代碼是:http://www.tngou.net/api/food/ show?id=

Retrofit

public class Retrofit {    private IBeanService service;    /**     * 獲取Retrofit實例     * @return     */    public static Retrofit getRetrofit(){        return new Retrofit();    }    private Retrofit() {        retrofit2.Retrofit retrofit = new retrofit2.Retrofit.Builder()                .baseUrl("http://www.tngou.net/api/food/")                .addConverterFactory(GsonConverterFactory.create())                .build();         service = retrofit.create(IBeanService.class);    }    /**     * 獲取IBeanService實例     * @return     */    public IBeanService getService(){        return service;    }}

4MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private EditText mEditText;    private TextView mTextView;    private Button mButton;    private IBeanService service;    private Retrofit retrofit;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mEditText = (EditText) findViewById(R.id.et_input);        mTextView = (TextView) findViewById(R.id.tv_2);        mButton = (Button) findViewById(R.id.bt_query);        retrofit=Retrofit.getRetrofit();        service= retrofit.getService();        mButton.setOnClickListener(this);    }    public void onClick(View view) {        switch (view.getId()) {            case R.id.bt_query:                query();                break;        }    }    private void query(){        mTextView.setText("");        String num=mEditText.getText().toString();        if(num.isEmpty()){            Toast.makeText(MainActivity.this, "請輸入ID", Toast.LENGTH_SHORT).show();            return;        }        Call<Bean> call = service.getMenuById(num);        call.enqueue(new Callback<Bean>() {            @Override            public void onResponse(Call<Bean> call, Response<Bean> response) {                if (response.isSuccessful()) {                    Bean result = response.body();//關鍵                    if (result != null) {                        String msg = result.getMessage();                        String name=result.getName();                        mTextView.setText("message="+msg+"name="+name);                    }                }            }            @Override            public void onFailure(Call<Bean> call, Throwable t) {            }        });    }}

5activity_main.xml

    <TextView        android:id="@+id/tv_1"        android:layout_width="wrap_content"        android:layout_height="40dp"        android:text="ID是:"        android:layout_alignParentLeft="true"        android:textColor="#000000"        android:textSize="20sp" />    <EditText        android:layout_width="180dp"        android:layout_height="40dp"        android:layout_toRightOf="@id/tv_1"        android:id="@+id/et_input"/>    <Button        android:layout_width="wrap_content"        android:layout_height="40dp"        android:layout_toRightOf="@id/et_input"        android:id="@+id/bt_query"        android:text="查詢"        />    <TextView        android:id="@+id/tv_2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/tv_1"        android:layout_alignLeft="@id/tv_1"        android:layout_marginTop="20dp"        android:textColor="#000000"        android:textSize="15sp" />大家相互學習,有問題或者建議的,請留言,謝謝了!
上一篇:正斜線和反斜線

下一篇:百度地圖 定位

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊宁县| 金华市| 收藏| 安陆市| 湘阴县| 莲花县| 运城市| 株洲市| 红河县| 东至县| 江北区| 道孚县| 石泉县| 临夏县| 岑溪市| 青神县| 清苑县| 井研县| 修文县| 将乐县| 石嘴山市| 山丹县| 南汇区| 博客| 孝感市| 尉犁县| 高陵县| 桓台县| 英德市| 东乡族自治县| 太白县| 横山县| 仲巴县| 泰州市| 夏河县| 老河口市| 安图县| 黄石市| 玉溪市| 巴彦县| 光泽县|