Created
October 6, 2021 18:15
-
-
Save codinginflow/d7a02bd69eebf566b4650c41bc362be7 to your computer and use it in GitHub Desktop.
Retrofit Tutorial Part 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:padding="8dp" | |
tools:context=".MainActivity"> | |
<android.support.v4.widget.NestedScrollView | |
android:layout_width="match_parent" | |
android:layout_height="match_parent"> | |
<TextView | |
android:id="@+id/text_view_result" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:textColor="#000" /> | |
</android.support.v4.widget.NestedScrollView> | |
</android.support.constraint.ConstraintLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.codinginflow.retrofitexample"> | |
<uses-permission android:name="android.permission.INTERNET" /> | |
<application | |
android:allowBackup="true" | |
android:icon="@mipmap/ic_launcher" | |
android:label="@string/app_name" | |
android:roundIcon="@mipmap/ic_launcher_round" | |
android:supportsRtl="true" | |
android:theme="@style/AppTheme"> | |
<activity android:name=".MainActivity"> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN" /> | |
<category android:name="android.intent.category.LAUNCHER" /> | |
</intent-filter> | |
</activity> | |
</application> | |
</manifest> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.codinginflow.retrofitexample; | |
import com.google.gson.annotations.SerializedName; | |
public class Comment { | |
private int postId; | |
private int id; | |
private String name; | |
private String email; | |
@SerializedName("body") | |
private String text; | |
public int getPostId() { | |
return postId; | |
} | |
public int getId() { | |
return id; | |
} | |
public String getName() { | |
return name; | |
} | |
public String getEmail() { | |
return email; | |
} | |
public String getText() { | |
return text; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.codinginflow.retrofitexample; | |
import java.util.List; | |
import java.util.Map; | |
import retrofit2.Call; | |
import retrofit2.http.GET; | |
import retrofit2.http.Path; | |
import retrofit2.http.Query; | |
import retrofit2.http.QueryMap; | |
import retrofit2.http.Url; | |
public interface JsonPlaceHolderApi { | |
@GET("posts") | |
Call<List<Post>> getPosts( | |
@Query("userId") Integer[] userId, | |
@Query("_sort") String sort, | |
@Query("_order") String order | |
); | |
@GET("posts") | |
Call<List<Post>> getPosts(@QueryMap Map<String, String> parameters); | |
@GET("posts/{id}/comments") | |
Call<List<Comment>> getComments(@Path("id") int postId); | |
@GET | |
Call<List<Comment>> getComments(@Url String url); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.codinginflow.retrofitexample; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.widget.TextView; | |
import java.util.HashMap; | |
import java.util.List; | |
import java.util.Map; | |
import retrofit2.Call; | |
import retrofit2.Callback; | |
import retrofit2.Response; | |
import retrofit2.Retrofit; | |
import retrofit2.converter.gson.GsonConverterFactory; | |
public class MainActivity extends AppCompatActivity { | |
private TextView textViewResult; | |
private JsonPlaceHolderApi jsonPlaceHolderApi; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
textViewResult = findViewById(R.id.text_view_result); | |
Retrofit retrofit = new Retrofit.Builder() | |
.baseUrl("https://jsonplaceholder.typicode.com/") | |
.addConverterFactory(GsonConverterFactory.create()) | |
.build(); | |
jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class); | |
//getPosts(); | |
getComments(); | |
} | |
private void getPosts() { | |
Map<String, String> parameters = new HashMap<>(); | |
parameters.put("userId", "1"); | |
parameters.put("_sort", "id"); | |
parameters.put("_order", "desc"); | |
Call<List<Post>> call = jsonPlaceHolderApi.getPosts(parameters); | |
call.enqueue(new Callback<List<Post>>() { | |
@Override | |
public void onResponse(Call<List<Post>> call, Response<List<Post>> response) { | |
if (!response.isSuccessful()) { | |
textViewResult.setText("Code: " + response.code()); | |
return; | |
} | |
List<Post> posts = response.body(); | |
for (Post post : posts) { | |
String content = ""; | |
content += "ID: " + post.getId() + "\n"; | |
content += "User ID: " + post.getUserId() + "\n"; | |
content += "Title: " + post.getTitle() + "\n"; | |
content += "Text: " + post.getText() + "\n\n"; | |
textViewResult.append(content); | |
} | |
} | |
@Override | |
public void onFailure(Call<List<Post>> call, Throwable t) { | |
textViewResult.setText(t.getMessage()); | |
} | |
}); | |
} | |
private void getComments() { | |
Call<List<Comment>> call = jsonPlaceHolderApi | |
.getComments("https://jsonplaceholder.typicode.com/posts/3/comments"); | |
call.enqueue(new Callback<List<Comment>>() { | |
@Override | |
public void onResponse(Call<List<Comment>> call, Response<List<Comment>> response) { | |
if (!response.isSuccessful()) { | |
textViewResult.setText("Code: " + response.code()); | |
return; | |
} | |
List<Comment> comments = response.body(); | |
for (Comment comment : comments) { | |
String content = ""; | |
content += "ID: " + comment.getId() + "\n"; | |
content += "Post ID: " + comment.getPostId() + "\n"; | |
content += "Name: " + comment.getName() + "\n"; | |
content += "Email: " + comment.getEmail() + "\n"; | |
content += "Text: " + comment.getText() + "\n\n"; | |
textViewResult.append(content); | |
} | |
} | |
@Override | |
public void onFailure(Call<List<Comment>> call, Throwable t) { | |
textViewResult.setText(t.getMessage()); | |
} | |
}); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.codinginflow.retrofitexample; | |
import com.google.gson.annotations.SerializedName; | |
public class Post { | |
private int userId; | |
private int id; | |
private String title; | |
@SerializedName("body") | |
private String text; | |
public int getUserId() { | |
return userId; | |
} | |
public int getId() { | |
return id; | |
} | |
public String getTitle() { | |
return title; | |
} | |
public String getText() { | |
return text; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment