//主Activity
public class MainActivity extends AppCompatActivity {
private ListView list_view;
private ListView list_view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list_view = (ListView) findViewById(R.id.list_view);
//清单文件要适配(添加)在主Activity后面 <activity android:name=".WebActivity"/>
list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
if (list != null){
Intent intent = new Intent(MainActivity.this , WebActivity.class);
intent.putExtra("url" , list.get(i).getUrl());
startActivity(intent);
}
}
});
MyTask myTask = new MyTask();
myTask.execute("http://v.juhe.cn/weixin/query?key=88f7bbc507e3ecacfaeab2b47dd8936f");
}
class MyTask extends AsyncTask<String , String , String > {
@Override
protected String doInBackground(String... strings) {
try {
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(strings[0]);
HttpResponse execute = client.execute(httpGet);
int statusCode = execute.getStatusLine().getStatusCode();
if (statusCode == 200){
HttpEntity entity = execute.getEntity();
InputStream inputStream = entity.getContent();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder builder = new StringBuilder();
String s = "";
while ((s=bufferedReader.readLine())!=null){
builder.append(s);
}
bufferedReader.close();
return builder.toString();
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
UserBean userBean = gson.fromJson(s, UserBean.class);
List<UserBean.ResultBean.ListBean> list = userBean.getResult().getList();
MyAdapter myAdapter = new MyAdapter(MainActivity.this, list);
list_view.setAdapter(myAdapter);
}
}}
//WebActivity 清单文件要适配(添加)在主Activity后面 <activity android:name=".WebActivity"/>
public class WebActivity extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web);
webView = findViewById(R.id.web_view);
Intent intent = getIntent();
String url = intent.getStringExtra("url");
//加载
webView.loadUrl(url);
//设置
webView.setWebViewClient(new WebViewClient());
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
}
}
//adapter
public class MyAdapter extends BaseAdapter {
Context context;
List<UserBean.ResultBean.ListBean> list;
public MyAdapter(Context context, List<UserBean.ResultBean.ListBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(final int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if (view == null){
holder = new ViewHolder();
view = View.inflate(context , R.layout.list_view_demo , null);
holder.imageView = view.findViewById(R.id.image_firstImg);
holder.textView = view.findViewById(R.id.text_title);
view.setTag(holder);
}else{
holder = (ViewHolder) view.getTag();
}
holder.textView.setText(list.get(i).getTitle());
// new ImageUtil().ImageNei(list.get(i).getFirstImg() , holder.imageView);
holder.imageView.setImageResource(R.mipmap.ic_launcher);
if (list.get(i).getFirstImg() != null){
holder.imageView.setTag(list.get(i).getFirstImg());
new ImageUtil().ImageNei(holder.imageView , list.get(i).getFirstImg() , new ImageCallBack(){
@Override
public void setSuccessImage(ImageView imageView, Bitmap bitmap) {
if (list.get(i).getFirstImg().equals(imageView.getTag())){
imageView.setImageBitmap(bitmap);
}
}
});
}
return view;
}
class ViewHolder{
ImageView imageView;
TextView textView;
}
}
//util
public class ImageUtil {
public void ImageNei(final ImageView imageView, final String firstImg, final ImageCallBack imageCallBack) {
AsyncTask<Void, Void, Bitmap> asyncTask = new AsyncTask<Void, Void, Bitmap>() {
@Override
protected Bitmap doInBackground(Void... voids) {
try {
URL url = new URL(firstImg);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
int responseCode = connection.getResponseCode();
if (responseCode == 200){
InputStream inputStream = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
imageCallBack.setSuccessImage(imageView , bitmap);
}
};
asyncTask.execute();
}
}
//接口call
public interface ImageCallBack {
public void setSuccessImage(ImageView imageView , Bitmap bitmap);
}
//bean
public class UserBean {
private String reason;
private ResultBean result;
private int error_code;
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public ResultBean getResult() {
return result;
}
public void setResult(ResultBean result) {
this.result = result;
}
public int getError_code() {
return error_code;
}
public void setError_code(int error_code) {
this.error_code = error_code;
}
public static class ResultBean {
private int totalPage;
private int ps;
private int pno;
private List<ListBean> list;
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getPs() {
return ps;
}
public void setPs(int ps) {
this.ps = ps;
}
public int getPno() {
return pno;
}
public void setPno(int pno) {
this.pno = pno;
}
public List<ListBean> getList() {
return list;
}
public void setList(List<ListBean> list) {
this.list = list;
}
public static class ListBean {
private String id;
private String title;
private String source;
private String firstImg;
private String mark;
private String url;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getFirstImg() {
return firstImg;
}
public void setFirstImg(String firstImg) {
this.firstImg = firstImg;
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
}
}