package com.example.endtext;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private List<Map<String,Object>> list=new ArrayList<>();
private RecyclerView recyclerView;
private Adapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter=new Adapter(MainActivity.this,list);
recyclerView=findViewById(R.id.recycler);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
Thread thread=new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection connection=null;
BufferedReader reader=null;
try {
URL url=new URL("http://news-at.zhihu.com/api/3/stories/latest");
connection= (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);
InputStream in=connection.getInputStream();
reader=new BufferedReader(new InputStreamReader(in));
StringBuilder response=new StringBuilder();
String line;
while ((line=reader.readLine())!=null){
response.append(line);
}
showResponse(response.toString());
} catch (IOException e) {
e.printStackTrace();
AlertDialog textTips1 = new AlertDialog.Builder(MainActivity.this)
.setTitle("Tips:")
.setMessage("。\n")
.create();
textTips1.show();
}finally {
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
AlertDialog textTips2 = new AlertDialog.Builder(MainActivity.this)
.setTitle("Tips:")
.setMessage("1\n")
.create();
textTips2.show();
}
}
}
}
});thread.start();}
private void showResponse(String string) {
try {
JSONObject jsonObject = new JSONObject(string);
JSONArray jsonArray =new JSONArray(jsonObject.getJSONObject("stories"));
for (int i=0;i<jsonArray.length();i++){
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
String title = jsonObject1.getString("title");
Map<String,Object> map=new HashMap<>();
map.put("title", title);
list.add(map); }
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
} catch (JSONException e) {
e.printStackTrace();
AlertDialog textTips3 = new AlertDialog.Builder(MainActivity.this)
.setTitle("Tips:")
.setMessage("圆\n")
.create();
textTips3.show();
}
}
}