如何在android Listview中显示单个项目?

如何在android Listview中显示单个项目?,android,android-listview,Android,Android Listview,我需要在列表视图中显示图像列表,因为我使用CustomAdapter在列表视图中完成了图像加载过程,这里的问题是我只需要显示一个图像,即可见计数必须只有一个。我需要避免显示2个图像。请找到附件供您参考。(我必须使用listview)我的代码是 MainActivity.Java: public class MainActivity extends Activity { ListView mList; String[] imageURL = { "http

我需要在列表视图中显示图像列表,因为我使用CustomAdapter在列表视图中完成了图像加载过程,这里的问题是我只需要显示一个图像,即可见计数必须只有一个。我需要避免显示2个图像。请找到附件供您参考。(我必须使用listview)我的代码是

MainActivity.Java:

public class MainActivity extends Activity {
    ListView mList;

    String[] imageURL = {
            "http://ptsdperspectives.org/wp-content/uploads/2013/07/sleepingbaby.jpg",
            "http://images2.fanpop.com/image/photos/14300000/Sweet-Angels-sweety-babies-14394647-1600-1200.jpg",
            "http://1.bp.blogspot.com/-QDe-qthaKz0/UAWZ6aakdoI/AAAAAAAAFK4/2zlaIu1r20Q/s1600/baby.jpg",
            "http://images4.fanpop.com/image/photos/17400000/Sweet-angel-sweety-babies-17465667-600-399.jpg",
            "http://media.npr.org/assets/img/2013/05/02/istock-11437508-baby-hat_custom-83708739a42b84de8f35d7a57ee868fce921d619-s6-c30.jpg",
            "http://my.fakingnews.firstpost.com/files/2013/09/Baby.jpg",
            "http://i.telegraph.co.uk/multimedia/archive/02165/swaddle-baby_2165340b.jpg" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mList = (ListView) findViewById(R.id.image_list_view);
        ArrayList<String> mArrayList = new ArrayList<String>();
        for (String s : imageURL) {
            mArrayList.add(s);
        }
        CustomImageAdapter mAdapter = new CustomImageAdapter(MainActivity.this,
                mArrayList);
        mList.setAdapter(mAdapter);
        mAdapter.notifyDataSetChanged();
        // mList.setOnScrollListener(new OnScrollListener() {
        //
        // @Override
        // public void onScrollStateChanged(AbsListView view, int scrollState) {
        // // TODO Auto-generated method stub
        // Log.e("onScrollStateChanged -scrollState", scrollState + "");
        // }
        //
        // @Override
        // public void onScroll(AbsListView view, int firstVisibleItem,
        // int visibleItemCount, int totalItemCount) {
        // Log.e("onScroll -firstVisibleIteml", firstVisibleItem + "");
        // Log.e("onScroll -visibleItemCount", visibleItemCount + "");
        // Log.e("onScroll -totalItemCount", totalItemCount + "");
        // // TODO Auto-generated method stub
        // }
        // });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
公共类MainActivity扩展活动{
ListView-mList;
字符串[]图像URL={
"http://ptsdperspectives.org/wp-content/uploads/2013/07/sleepingbaby.jpg",
"http://images2.fanpop.com/image/photos/14300000/Sweet-Angels-sweety-babies-14394647-1600-1200.jpg",
"http://1.bp.blogspot.com/-QDe-qthaKz0/UAWZ6aakdoI/AAAAAAAAFK4/2zlaIu1r20Q/s1600/baby.jpg",
"http://images4.fanpop.com/image/photos/17400000/Sweet-angel-sweety-babies-17465667-600-399.jpg",
"http://media.npr.org/assets/img/2013/05/02/istock-11437508-baby-hat_custom-83708739a42b84de8f35d7a57ee868fce921d619-s6-c30.jpg",
"http://my.fakingnews.firstpost.com/files/2013/09/Baby.jpg",
"http://i.telegraph.co.uk/multimedia/archive/02165/swaddle-baby_2165340b.jpg" };
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mList=(ListView)findViewById(R.id.image\u列表\u视图);
ArrayList mArrayList=新建ArrayList();
for(字符串s:imageURL){
结婚名单。添加(s);
}
CustomImageAdapter mAdapter=新的CustomImageAdapter(MainActivity.this,
结婚名单);
mList.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
//mslist.setOnScrollListener(新的OnScrollListener(){
//
//@覆盖
//公共无效onScrollStateChanged(AbsListView视图,int scrollState){
////TODO自动生成的方法存根
//Log.e(“onScrollStateChanged-scrollState”,scrollState+”);
// }
//
//@覆盖
//public void onScroll(AbsListView视图,int firstVisibleItem,
//int visibleItemCount,int totalItemCount){
//Log.e(“onScroll-firstVisibleIteml”,firstVisibleItem+”);
//Log.e(“onScroll-visibleItemCount”,visibleItemCount+”);
//Log.e(“onScroll-totalItemCount”,totalItemCount+”);
////TODO自动生成的方法存根
// }
// });
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}
CustomAdapter.Java

public class CustomImageAdapter extends BaseAdapter {

    private Activity activity;
    private static LayoutInflater inflater = null;
    protected ImageLoader imageLoader = ImageLoader.getInstance();
    DisplayImageOptions options;
    ArrayList<String> url = new ArrayList<String>();

    @SuppressWarnings("deprecation")
    public CustomImageAdapter(Activity a, ArrayList<String> url2) {

        activity = a;
        url = url2;
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        imageLoader.init(ImageLoaderConfiguration.createDefault(activity));
        options = new DisplayImageOptions.Builder().resetViewBeforeLoading()
                .cacheOnDisc().imageScaleType(ImageScaleType.IN_SAMPLE_INT)
                .bitmapConfig(Bitmap.Config.RGB_565)
                .displayer(new FadeInBitmapDisplayer(100)).build();

    }

    public int getCount() {
        return url.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public static class ViewHolder {
        public TextView u_name;
        public ImageView icon;

    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
        ViewHolder holder;
        if (convertView == null) {
            vi = inflater.inflate(R.layout.list_items, null);
            holder = new ViewHolder();
            holder.icon = (ImageView) vi.findViewById(R.id.images_bg);
            vi.setTag(holder);
        } else
            holder = (ViewHolder) vi.getTag();

        holder.icon.setTag(url.get(position));
        imageLoader.displayImage(url.get(position), holder.icon);

        return vi;
    }
}
公共类CustomImageAdapter扩展了BaseAdapter{
私人活动;
专用静态充气机=空;
受保护的ImageLoader ImageLoader=ImageLoader.getInstance();
显示图像选项;
ArrayList url=新的ArrayList();
@抑制警告(“弃用”)
公共CustomImageAdapter(活动a,ArrayList url2){
活动=a;
url=url2;
充气器=(充气器)活动
.getSystemService(上下文布局\充气机\服务);
init(ImageLoaderConfiguration.createDefault(活动));
选项=新的DisplayImageOptions.Builder().resetViewBeforeLoading()
.cacheOnDisc().imageScaleType(imageScaleType.IN\u SAMPLE\u INT)
.bitmapConfig(Bitmap.Config.RGB_565)
.displayer(新的FadeInBitmapDisplayer(100)).build();
}
public int getCount(){
返回url.size();
}
公共对象getItem(int位置){
返回位置;
}
公共长getItemId(int位置){
返回位置;
}
公共静态类视图持有者{
公共文本视图u_名称;
公共图像视图图标;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
视图vi=转换视图;
视窗座;
if(convertView==null){
vi=充气机充气(R.layout.list_项目,空);
holder=新的ViewHolder();
holder.icon=(ImageView)vi.findViewById(R.id.images\u bg);
vi.setTag(支架);
}否则
holder=(ViewHolder)vi.getTag();
holder.icon.setTag(url.get(position));
imageLoader.displayImage(url.get(位置)、holder.icon);
返回vi;
}
}

为多个对象的列表创建了一个列表视图。一次只显示一个项目?尝试使用ViewPager。这里有一个很棒的教程:


我希望这会有所帮助。

可能会,但如果您使用ViewPager,它将是更可靠的解决方案

请遵循以下代码:

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.view.Window;
import android.widget.*;

public class DemoPhotoAlbumActivity extends FragmentActivity implements AdapterView.OnItemSelectedListener, ViewPager.OnPageChangeListener {

    private ViewPager viewPager;
    ImageButton home,file,spanner,info;
  //  private Gallery gallery;

    protected Integer[] mImageIds = {

            R.drawable.screen_02,
            R.drawable.screen_03,
            R.drawable.screen_04,
            R.drawable.screen_05,
            R.drawable.screen_06,
    };

//    protected Integer[] mImageIdsTab = {
//            R.drawable.tab1,
//            R.drawable.tab2,
//            R.drawable.tab3,
//            R.drawable.tab4,
//            R.drawable.tab5,
//            R.drawable.tab6,
//    };

    private Handler handler;

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.image_gallery);

        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);

        viewPager = (ViewPager) findViewById(R.id.view_pager);
//        home= (ImageButton) findViewById(R.id.home_icon);
//        file= (ImageButton) findViewById(R.id.folder_icon);
//        spanner=(ImageButton) findViewById(R.id.spanner_icon);
//        info=(ImageButton) findViewById(R.id.info_icon);

        viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
        viewPager.setOnPageChangeListener(this);

        /*gallery = (Gallery) findViewById(R.id.gallery); 

        // set gallery to left side
        MarginLayoutParams mlp = (MarginLayoutParams) gallery.getLayoutParams();
        mlp.setMargins(-(metrics.widthPixels / 2 + (142/2)), mlp.topMargin,
                    mlp.rightMargin, mlp.bottomMargin);

        gallery.setSelection(1);
        gallery.setAdapter(new ImageAdapter());
        gallery.setOnItemSelectedListener(this);       
        */
        handler = new Handler();

    }

    // gallery item selected
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
        updateUI(i);
    }

    // view pager item selected
    public void onPageSelected(int i) {

        updateUI(i);
    }

    private void updateUI(final int i) {
        viewPager.setCurrentItem(i);
    }

    public void onNothingSelected(AdapterView<?> adapterView) {    }

    public void onPageScrolled(int i, float v, int i1) {    }

    public void onPageScrollStateChanged(int i) {    }

    public class ImageAdapter extends BaseAdapter {

        public int getCount() {
            return mImageIds.length;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) 
        {

            ImageView imageView = new ImageView(DemoPhotoAlbumActivity.this);

            imageView.setImageResource(mImageIds[position]);
            imageView.setLayoutParams(new Gallery.LayoutParams(150, 100));
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);

            return imageView;
        }
    }

    public class MyAdapter extends FragmentPagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public int getCount() {
            return mImageIds.length;
        }

        @SuppressLint("ValidFragment")
        @Override
        public Fragment getItem(final int position) {
            return new Fragment() {
                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                    ImageView imageView = new ImageView(DemoPhotoAlbumActivity.this);
                    //imageView.setImageResource(mImageIds[position]);
                    imageView.setBackgroundResource(mImageIds[position]);
                    return imageView;
                }
            };
        }
    }


}
导入android.annotation.SuppressLint;
导入android.os.Bundle;
导入android.os.Handler;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentActivity;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentPagerAdapter;
导入android.support.v4.view.ViewPager;
导入android.util.DisplayMetrics;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.view.ViewGroup.MarginLayoutParams;
导入android.view.Window;
导入android.widget.*;
公共类DemoPhotoAlbumActivity扩展FragmentActivity实现AdapterView.OnItemSelectedListener、ViewPager.OnPageChangeListener{
私人视页机视页机;
图像按钮主页、文件、扳手、信息;
//私人画廊;
受保护的整数[]图像ID={
R.drawable.screen_02,
R.drawable.screen_03,
R.drawable.screen_04,
R.drawable.screen_05,
R.drawable.screen_06,
};
//受保护的Inte
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_height="fill_parent"
             android:layout_width="fill_parent"

        >
    <android.support.v4.view.ViewPager 
        android:id="@+id/view_pager"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"

            />        
</FrameLayout>