救救孩子吧!!!!!!!!!!!!!!!!!!
package com.example.group_buying;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.res.ResourcesCompat;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView appListView;
private ListView appListView2;
private LayoutInflater inflater;
bitmapc[] bitmapc=new bitmapc[6];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
/* inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
View view=inflater.inflate(R.layout.activity_main, null);
ListView appListView=(ListView)view.findViewById(R.id.app_list_view);*/
appListView = (ListView) findViewById(R.id.main_list_view);
List<Drawable> list=new ArrayList<>();
list.add(ResourcesCompat.getDrawable(getResources(), R.drawable.cake, null));
list.add(ResourcesCompat.getDrawable(getResources(), R.drawable.autombile1, null));
appListView.setAdapter(new ApplistAdapter(list));
appListView2 = (ListView) findViewById(R.id.main_list_view2);
new RequestDataAsyncTask().execute();
}
public class RequestDataAsyncTask extends AsyncTask<Void,Void,String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
//
}
@Override
protected String doInBackground(Void... voids) {
String s=request("http://www.imooc.com/api/shopping?type=11");
try {
JSONObject jsonObject=new JSONObject(s);
JSONArray dataArray=jsonObject.getJSONArray("data");
URL url=null;
Bitmap bitmap;
for (int i = 0; i <dataArray.length() ; i++) {
LessonResult.LessonInfo lessonInfo=new LessonResult.LessonInfo();
JSONObject tempJSONObject= (JSONObject) dataArray.get(i);//这里还要使用JSONObject的原理数组里面每一个都是JSON格式的对象,所以还需要对他进行JSON的解析
url = new URL(tempJSONObject.getString("img"));
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
int code=conn.getResponseCode();
if (conn.getResponseCode() == 200) {
InputStream inputStream = conn.getInputStream();
byte[] bytes=toByteArray(inputStream);
bitmap =BitmapFactory.decodeByteArray(bytes,0,bytes.length);
if(bitmap!=null)
{
bitmapc[i].setBitmap(bitmap);
inputStream.close();
}
}
}
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return request("http://www.imooc.com/api/shopping?type=11");
}
public byte[] toByteArray(InputStream input) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int n = 0;
while (-1 != (n = input.read(buffer))) {
output.write(buffer, 0, n);
}
return output.toByteArray();
}
private String request(String s) {
try {
URL url=new URL(s);
HttpURLConnection connection= (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(30000);
connection.setRequestMethod("GET");
connection.connect();
int responseCode=connection.getResponseCode();//拿到返回码
if(responseCode==HttpURLConnection.HTTP_OK){
InputStreamReader inputStreamReader=new InputStreamReader(connection.getInputStream());//转换数据
BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
StringBuilder stringBuilder=new StringBuilder ();//缓存信息
String line;
while((line = bufferedReader.readLine())!=null)//读并赋值给line
{
stringBuilder.append(line);
}
inputStreamReader.close();
return stringBuilder.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
//处理返回来的字符串
LessonResult lessonResult=new LessonResult();
try {
JSONObject jsonObject=new JSONObject(result);
lessonResult.setmStatus(jsonObject.getInt("status"));
List<LessonResult.LessonInfo> lessonInfos=new ArrayList<>();
JSONArray dataArray=jsonObject.getJSONArray("data");
for (int i = 0; i <dataArray.length() ; i++) {
LessonResult.LessonInfo lessonInfo=new LessonResult.LessonInfo();
JSONObject tempJSONObject= (JSONObject) dataArray.get(i);//这里还要使用JSONObject的原理数组里面每一个都是JSON格式的对象,所以还需要对他进行JSON的解析
lessonInfo.setId(tempJSONObject.getString("id"));
lessonInfo.setFoodname(tempJSONObject.getString("name"));
lessonInfo.setPictureurl( tempJSONObject.getString("img"));
lessonInfo.setCount( tempJSONObject.getString("count"));
lessonInfo.setBitmap(bitmapc[i].getBitmap());
lessonInfo.setPrice( tempJSONObject.getString("price"));
lessonInfo.setAction( tempJSONObject.getString("action"));
lessonInfo.setDescription( tempJSONObject.getString("description"));
lessonInfos.add(lessonInfo);
}
lessonResult.setmLessonInfoList(lessonInfos);
} catch (JSONException e) {
e.printStackTrace();
}
appListView2.setAdapter(new menuAdapter(MainActivity.this,lessonResult.getmLessonInfoList()));
}
}
public class ApplistAdapter extends BaseAdapter {
List<Drawable> list;
//这就是要填充的数据列表
public ApplistAdapter(List<Drawable> image) {
this.list=image;
}
@Override
public int getCount() {
//有多少条数据
return list.size();
}
@Override
public Object getItem(int position) {
//返回获取当前position位置这一条
return list.get(position);
}
@Override
public long getItemId(int position) {
//返回获取当前position位置这一条的ID
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
//处理view --data 填充数据的一个过程
ViewHolder viewHolder;
LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView==null) {
viewHolder = new ViewHolder();
convertView = layoutInflater.inflate(R.layout.list_view_data_demo, null);
viewHolder.imageView1 =(ImageView) convertView.findViewById(R.id.ImageView1);
viewHolder.imageView2=(ImageView)convertView.findViewById(R.id.ImageView2);
viewHolder.imageView3 =(ImageView) convertView.findViewById(R.id.ImageView3);
viewHolder.imageView4=(ImageView)convertView.findViewById(R.id.ImageView4);
convertView.setTag(viewHolder);//对应
}else{
viewHolder= (ViewHolder) convertView.getTag();
}
if(position==0) {
viewHolder.imageView1.setImageDrawable(getResources().getDrawable((R.drawable.fly1)));
viewHolder.imageView2.setImageDrawable(getResources().getDrawable((R.drawable.car)));
viewHolder.imageView3.setImageDrawable(getResources().getDrawable((R.drawable.autombile1)));
viewHolder.imageView4.setImageDrawable(getResources().getDrawable((R.drawable.cake)));
}
if(position==1) {
viewHolder.imageView1.setImageDrawable(getResources().getDrawable((R.drawable.food)));
viewHolder.imageView2.setImageDrawable(getResources().getDrawable((R.drawable.watch)));
viewHolder.imageView3.setImageDrawable(getResources().getDrawable((R.drawable.cp)));
viewHolder.imageView4.setImageDrawable(getResources().getDrawable((R.drawable.phone)));
}
return convertView;
}
public class ViewHolder{
public ImageView imageView1;
public ImageView imageView2;
public ImageView imageView3;
public ImageView imageView4;
}
}
public class bitmapc{
Bitmap bitmap;
public android.graphics.Bitmap getBitmap() {
return bitmap;
}
public void setBitmap(android.graphics.Bitmap bitmap) {
this.bitmap = bitmap;
}
}
}
91行那里bitmap是空的,我顶不住!
正在回答 回答被采纳积分+1
- 参与学习 人
- 提交作业 220 份
- 解答问题 1800 个
本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星