Android 我试图在Listview中显示图像列表,但我只有列表中的第一项

Android 我试图在Listview中显示图像列表,但我只有列表中的第一项,android,listview,retrofit,Android,Listview,Retrofit,我正在使用android并进行改装,以调用API web服务。数据已成功接收,但当我尝试在布局中显示图像列表时,结果只是第一张图像,尽管图像数组的大小更大。。 我的活动是:城市活动获取城市信息,如名称、描述和城市图像列表。。 在《城市图像》中,我有一个我问过的问题 我的代码: 城市活动: package com.example.android.travelandtourism.Activities; 导入android.content.Intent; 导入android.os.Bundle;

我正在使用android并进行改装,以调用API web服务。数据已成功接收,但当我尝试在布局中显示图像列表时,结果只是第一张图像,尽管图像数组的大小更大。。 我的活动是:城市活动获取城市信息,如名称、描述和城市图像列表。。 在《城市图像》中,我有一个我问过的问题 我的代码: 城市活动:

package com.example.android.travelandtourism.Activities;
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.widget.ImageView;
导入android.widget.ListView;
导入android.widget.TextView;
导入com.example.android.travelandtourism.Adapters.ImagesAdapter;
导入com.example.android.travelandtourism.Interfaces.IApi;
导入com.example.android.travelandtourism.Models.City;
导入com.example.android.travelandtourism.Models.Countries;
导入com.example.android.travelandtourism.Models.Images;
导入com.example.android.travelandtourism.R;
导入com.google.gson.gson;
导入com.google.gson.GsonBuilder;
导入com.squareup.picasso.picasso;
导入java.util.ArrayList;
导入java.util.List;
2.电话;;
2.回拨;
2.回应;;
进口改装2.改装;
进口改装2.converter.gson.GsonConverterFactory;
/**
*由haya于2017年8月29日创建。
*/
公共类城市活动扩展了AppCompatActivity{
私有列表视图列表视图;
公共静态最终字符串BASE_URL=”http://www.travel-tourism1.somee.com/api/";
字符串url=”http://www.travel-tourism1.somee.com";
Gson Gson=new GsonBuilder()
.setDateFormat(“66yyyy-MM-dd'HH:MM:ssZ”)
.create();
改装改装=新改装.Builder()
.baseUrl(基本URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
IApi服务=翻新.create(IApi.class);
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u city\u info);
Intent=this.getIntent();
int cityId=intent.getIntExtra(intent.EXTRA_TEXT,0);
listView=(listView)findViewById(R.id.listCityImages);
Call Call=service.getCity(cityId);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
setVisibility(View.VISIBLE);
ResponseValue cityResponse=response.body();
City cc=cityResponse.getCity();
TextView tv1=(TextView)findViewById(R.id.tvCityInfoNameEn);
tv1.setText(cc.getNameEn());
TextView tv2=(TextView)findViewById(R.id.tvCityInfoNameAr);
tv2.setText(cc.getNameAr());
TextView tv3=(TextView)findViewById(R.id.tvcitynfodeseng);
tv3.setText(cc.getDescriptionEn());
TextView tv4=(TextView)findViewById(R.id.tvCityInfoDesAr);
tv4.setText(cc.getDescriptionAr());
ArrayList ArrayList=新的ArrayList();
ArrayList images=cityResponse.getCity().getImages();
arrayList.addAll(图像);
//最终ImagesAdapter=新的ImagesAdapter(getApplicationContext(),R.layout.row_image,arrayList);
ImagesAdapter=新的ImagesAdapter(getApplicationContext(),arrayList);
setAdapter(适配器);
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
}

}
在ImageAdapter类中添加以下方法:

 public class ImagesAdapter extends BaseAdapter {

String url = "http://www.travel-tourism1.somee.com";
private Context context;
private List<Images> imagesList;

public ImagesAdapter(Context context, int resource, List<Images> objects) {
    super(context, resource, objects);
    this.context = context;
    this.imagesList = objects;
}



@Override
public int getCount() {

    return imagesList.size();
}

@Override
public Object getItem(int position) {

    return null;
}

@Override
public long getItemId(int position) {

    return position;
}

 @Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.row_image,parent,false);


    Images image = imagesList.get(position);
    ImageView iv = (ImageView)view.findViewById(R.id.ivImage);
    String imgPath = image.getPath().substring(1);
    Picasso.with(getContext()).load(url+imgPath).resize(300,300).into(iv);


    return view;

 }
  }
公共类ImagesAdapter扩展BaseAdapter{
字符串url=”http://www.travel-tourism1.somee.com";
私人语境;
私有列表图像列表;
公共ImagesAdapter(上下文、int资源、列表对象){
超级(上下文、资源、对象);
this.context=上下文;
this.imagesList=对象;
}
@凌驾
public int getCount(){
返回imagesList.size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutInflater充气器=(LayoutInflater)context.getSystemService(Activity.LAYOUT\u充气器\u SERVICE);
视图=充气机。充气(右布局。行\图像,父,假);
Images image=imagesList.get(位置);
ImageView iv=(ImageView)view.findViewById(R.id.ivImage);
字符串imgPath=image.getPath().substring(1);
Picasso.with(getContext()).load(url+imgPath).resize(300300).into(iv);
返回视图;
}
}
添加以下内容:

@Override
public int getCount() {

    return imagesList.size();
}

@Override
public Object getItem(int position) {

    return imageList.get(position);
}

@Override
public long getItemId(int position) {

    return position;
}

您不能在scrollview中使用listview,因此添加listview的touch listner来处理listview的滚动,而不是在滚动列表时可以查看所有图像。因此,在
CityActivity.java

 listView.setOnTouchListener(new View.OnTouchListener() {
            // Setting on Touch Listener for handling the touch inside ScrollView
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // Disallow the touch request for parent scroll on touch of child view
                v.getParent().requestDisallowInterceptTouchEvent(true);
                return false;
            }
        });

谢谢你的重播。。。但是我在(我的包名)中有一个错误'getItem(int)'。CustomDrawerRadapter'与'android.widget.ArrayAdapter'中的'getItem(int)'冲突;试图使用不兼容的返回类型“因为我的类扩展了ArrayAdapter,我如何修复它?将其更改为BaseAdapter:=>公共类ImagesAdapter扩展BaseAdapter{@HayaSVU将其更改为BaseAdapter:=>公共类ImagesAdapter扩展BaseAdapter{谢谢你的帮助,,,但即使我做了Bapusaheb Shinde先生在《you see it》的第二条评论中告诉我要做的事情,我的任何事情都没有改变。.谢谢你的重播…但是我在(我的包名)中出现了这个错误'getItem(int)'。CustomDrawerRadapter'与'android.widget.ArrayAdapter'中的'getItem(int)'冲突;试图