Json android图像和文本重复
Json android,我有一个加载图像和文本的Json,工作完美,但imagens与文本不匹配,imagens重复骨骼和文本,我错了,我是新手Json android图像和文本重复,android,json,Android,Json,Json android,我有一个加载图像和文本的Json,工作完美,但imagens与文本不匹配,imagens重复骨骼和文本,我错了,我是新手 public class CustomAdapter extends BaseAdapter { LayoutInflater inflator; ArrayList<JSONFields> result; public CustomAdapter(Context context, ArrayList<J
public class CustomAdapter extends BaseAdapter {
LayoutInflater inflator;
ArrayList<JSONFields> result;
public CustomAdapter(Context context, ArrayList<JSONFields> result) {
// TODO Auto-generated constructor stub
inflator = LayoutInflater.from(context);
this.result = result;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return result.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder;
DownloadImageTask task = null;
if (convertView == null) {
holder = new Holder();
convertView = inflator.inflate(R.layout.helper, null);
holder.image = (ImageView) convertView
.findViewById(R.id.imageView1);
holder.textview1 = (TextView) convertView
.findViewById(R.id.textView1);
holder.descrip = (TextView) convertView
.findViewById(R.id.descripcion);
task = new DownloadImageTask(holder.image);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
JSONFields fields = new JSONFields();
fields = result.get(position);
if (task != null)
task.execute(fields.getUrl());
holder.textview1.setText(fields.getName());
holder.descrip.setText(fields.getDescripcion());
return convertView;
}
public class Holder {
ImageView image;
TextView textview1;
TextView descrip;
}
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
in.close();
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
}
import com.ditec.json.data.JSONFields;
public class MainActivity extends Activity {
public static final String URL = "http://169.254.65.190:5000/fbsharing/7BkWVF6r";
ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listView1);
GetJSON json = new GetJSON();
json.execute(URL);
}
public class GetJSON extends AsyncTask<String, Void, ArrayList<JSONFields>> {
@Override
protected ArrayList<JSONFields> doInBackground(String... params) {
// TODO Auto-generated method stub
try {
String url = params[0];
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response;
response = client.execute(get);
InputStream content = response.getEntity().getContent();
BufferedReader reader;
reader = new BufferedReader(new InputStreamReader(content, "iso-8859-1"), 8);
String line;
String json = "";
while ((line = reader.readLine()) != null) {
json += line;
}
JSONArray array = new JSONArray(json);
ArrayList<JSONFields> alData = new ArrayList<JSONFields>();
for (int i = 0; i < array.length(); i++) {
JSONFields data = new JSONFields();
JSONObject obj = array.getJSONObject(i);
data.setUrl(obj.getString("url"));
data.setName(obj.getString("name"));
data.setDescription(obj.getString("descripcion"));
alData.add(data);
}
System.out.println("Data returned sucessfully");
return alData;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(ArrayList<JSONFields> result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
CustomAdapter adapter = new CustomAdapter(MainActivity.this, result);
listview.setAdapter(adapter);
}
}
}
public class JSONFields {
private String name;
private String url;
private String descripcion;
public String getName() {
return name;
}
public String getUrl() {
return url;
}
public String getDescripcion() {
return descripcion;
}
public void setName(String name) {
this.name = name;
}
public void setUrl(String url) {
this.url = url;
}
public void setDescription(String descripcion) {
this.descripcion = descripcion;
}
}
公共类CustomAdapter扩展了BaseAdapter{
充气机;
阵列列表结果;
公共CustomAdapter(上下文、ArrayList结果){
//TODO自动生成的构造函数存根
充气器=从(上下文)开始充气;
this.result=结果;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回result.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
持有人;
DownloadImageTask任务=null;
if(convertView==null){
保持架=新保持架();
convertView=充气机充气(R.layout.helper,null);
holder.image=(ImageView)convertView
.findViewById(R.id.imageView1);
holder.textview1=(TextView)convertView
.findViewById(R.id.textView1);
holder.descripp=(TextView)convertView
.findViewById(R.id.Description);
任务=新下载的ImageTask(holder.image);
convertView.setTag(支架);
}否则{
holder=(holder)convertView.getTag();
}
JSONFields fields=新的JSONFields();
字段=结果。获取(位置);
如果(任务!=null)
task.execute(fields.getUrl());
holder.textview1.setText(fields.getName());
holder.descrip.setText(fields.getDescription());
返回视图;
}
公共类持有者{
图像视图图像;
文本视图文本视图1;
文本视图描述;
}
私有类DownloadImageTask扩展了AsyncTask{
图像视图bmImage;
公共下载ImageTask(ImageView bmImage){
this.bmImage=bmImage;
}
受保护位图doInBackground(字符串…URL){
字符串urldisplay=url[0];
位图mIcon11=null;
试一试{
InputStream in=newjava.net.URL(urldisplay.openStream();
mIcon11=BitmapFactory.decodeStream(in);
in.close();
}捕获(例外e){
Log.e(“Error”,e.getMessage());
e、 printStackTrace();
}
返回mIcon11;
}
受保护的void onPostExecute(位图结果){
bmImage.setImageBitmap(结果);
}
}
}
导入com.ditec.json.data.JSONFields;
公共类MainActivity扩展了活动{
公共静态最终字符串URL=”http://169.254.65.190:5000/fbsharing/7BkWVF6r";
列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview=(listview)findViewById(R.id.listView1);
GetJSON=new GetJSON();
json.execute(URL);
}
公共类GetJSON扩展异步任务{
@凌驾
受保护的ArrayList doInBackground(字符串…参数){
//TODO自动生成的方法存根
试一试{
字符串url=params[0];
HttpClient=new DefaultHttpClient();
HttpGet=新的HttpGet(url);
HttpResponse响应;
response=client.execute(get);
InputStream内容=response.getEntity().getContent();
缓冲读取器;
reader=新的BufferedReader(新的InputStreamReader(内容,“iso-8859-1”),8);
弦线;
字符串json=“”;
而((line=reader.readLine())!=null){
json+=行;
}
JSONArray数组=新的JSONArray(json);
ArrayList alData=新的ArrayList();
对于(int i=0;i