Я знаю, чтобы получить ListItem
от:ListView с изображением и текстом из JSON с помощью ArrayAdapter
string[] = {"data1","data","data3"};
Но как я могу получить его от ответа JSON? Я переместил свои данные в:
ArrayList<HashMap<String, String>>
Мой код ниже, я должен использовать JSON вместо того, чтобы получить String[]
, потому что мой ответ JSON содержит идентификатор, название и ссылку на изображение.
public class MainActivity extends AppCompatActivity {
String[] titles,header;
ListView list1;
int[] img;
String[] title;
int[] img = {R.drawable.img1, R.drawable.img2,R.drawable.img3};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list1 = (ListView) findViewById(R.id.list);
title ={"data1","data2","data3"}
myAdapter adapter = new myAdapter(getApplicationContext(), titles, img);
list1.setAdapter(adapter);
}
class myAdapter extends ArrayAdapter<String> {
Context context;
int[] imgs;
String[] titles;
private ArrayList<String> mData = new ArrayList<>();
private ArrayList<Integer> mImage = new ArrayList<>();
private TreeSet<Integer> sectionHeader = new TreeSet<Integer>();
private LayoutInflater mInflater;
myAdapter(Context context, String[] titles, int imgs[]) {
super(context, R.layout.list_item, R.id.text, titles);
this.context = context;
this.imgs = imgs;
this.titles = titles;
mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
int rowType = getItemViewType(position);
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.list_item, parent, false);
holder.myImage = (ImageView) convertView.findViewById(R.id.image);
holder.myText = (TextView) convertView.findViewById(R.id.texttitle);
Picasso.with(context)
.load(imgs[position])
.fit()
.into(holder.myImage);
holder.myText.setText(titles[position]);
convertView.setTag(holder.myImage);
return convertView;
}
public class ViewHolder {
public TextView myText;
public ImageView myImage;
}
}
}
Пожалуйста, предоставьте ответ json. – Drv
@Drv ответ json как [{"id": "1", "data": "data1"}, {"id": "2", "data": "data2"}] –
при использовании простого адаптера it показывает, что не может разрешить битмап. –