Skip to content

Instantly share code, notes, and snippets.

@a-dminator
Created July 31, 2017 15:56
Show Gist options
  • Save a-dminator/3ea942ebaafbb9778852a8811ba236d0 to your computer and use it in GitHub Desktop.
Save a-dminator/3ea942ebaafbb9778852a8811ba236d0 to your computer and use it in GitHub Desktop.
package io.adev.fast_pet;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
import android.widget.TextView;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.List;
import okhttp3.OkHttpClient;
import okhttp3.Request;
public class MainActivity extends AppCompatActivity {
class New {
int text;
New(int text) {
this.text = text;
}
}
private OkHttpClient client = new OkHttpClient();
private RecyclerView recyclerView;
private final List<New> news = new ArrayList<>();
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recyvlerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(new RecyclerView.Adapter() {
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
TextView view = new TextView(MainActivity.this);
return new RecyclerView.ViewHolder(view) {};
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
New n = news.get(position);
TextView textView = (TextView) holder.itemView;
textView.setText(n.text + "");
}
@Override
public int getItemCount() {
return news.size();
}
});
new Thread(new Runnable() {
@Override
public void run() {
try {
Request request = new Request.Builder()
.url("")
.build();
String responseString = client.newCall(request)
.execute()
.body().string();
// String responseString = "{\"code\":0,\"response\":{\"news\":[{\"text\":315},{\"text\":1254},{\"text\":3412}]}}";
JsonObject response = new JsonParser().parse(responseString).getAsJsonObject();
int code = response.get("code").getAsInt();
JsonArray newsArray = response.get("news").getAsJsonArray();
final List<New> news = new ArrayList<>();
for (JsonElement el : newsArray) {
JsonObject newJson = el.getAsJsonObject();
int text = newJson.get("text").getAsInt();
news.add(new New(text));
}
runOnUiThread(new Runnable() {
@Override
public void run() {
MainActivity.this.news.addAll(news);
recyclerView.getAdapter().notifyDataSetChanged();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment