返回顶部
首页 > 资讯 > 精选 >Android的ListView怎么使用
  • 835
分享到

Android的ListView怎么使用

2023-06-19 10:06:19 835人浏览 泡泡鱼
摘要

本篇内容主要讲解“Android的ListView怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android的ListView怎么使用”吧!在Android开发 中,经常会要用到水平水

本篇内容主要讲解“Android的ListView怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android的ListView怎么使用”吧!

在Android开发 中,经常会要用到水平水平ListView(HorizontalListView),但是,Android 官方并没有提供这样一个控件, 所以在这里我给大家分享一下我在项目中用到的一个水平水平ListView,非常好用, 使用过程 中与 ListView 是一样的, 实例化组件, 设置数据,设置Adaper.

package com.example.horizontallistview.hl.widget;import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.widget.AdapterView;import android.widget.ListAdapter;public abstract class HorizontalListView extends AdapterView<ListAdapter> { public HorizontalListView(Context context) {  super(context); } public HorizontalListView(Context context, AttributeSet attrs) {  super(context, attrs); } public HorizontalListView(Context context, AttributeSet attrs, int defStyle) {  super(context, attrs, defStyle); } public abstract int getScreenPositionForView(View view);  public interface OnItemDragListener {    boolean onItemStartDrag(AdapterView<?> parent, View view, int position,    long id); } public interface OnLayoutChangeListener {  void onLayoutChange(boolean changed, int left, int top, int right,    int bottom); } public interface OnScrollFinishedListener {    void onScrollFinished(int currentX); }}

为什么要继承AdapterView, 大家可以去看看Android提供的ListView是怎么实现的,

 public class ListView extends AbsListView
public abstract class AbsListView extends AdapterView<ListAdapter> implements TextWatcher,        ViewTreeObserver.OnGlobalLayoutListener, Filter.FilterListener,        ViewTreeObserver.OnTouchModeChangeListener,        RemoteViewsAdapter.RemoteAdapterConnectionCallback {

大家 对比去看看官方文档实现 ListView的类就知道了.这里我就不再多说了

大家 注意 HorizontalListView只是 一个抽象类, 所以我们不能直接用它,需要用一个类来实现里面的方法

 public class HorizontalVariableListView extends HorizontalListView implements  OnGestureListener, FlingRunnableView { public enum SelectionMode {  Single, Multiple }; public interface OnItemClickedListener {    boolean onItemClick(AdapterView<?> parent, View view, int position,    long id); } public static final int OVER_SCROLL_ALWAYS = 0; public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1; public static final int OVER_SCROLL_NEVER = 2; protected static final String LOG_TAG = "horizontal-variable-list"; private static final float WIDTH_THRESHOLD = 1.1f; protected int mAlignMode = Gravity.CENTER; protected SparseBooleanArray mSelectedPositions = new SparseBooleanArray(); protected int mHeight = 0; protected int mPaddingTop = 0; protected int mPaddingBottom = 0; protected ListAdapter mAdapter; private int mAdapterItemCount; private int mLeftViewIndex = -1; private int mRightViewIndex = 0; private GestureDetector mGesture; private List<Queue<View>> mRecycleBin; private List<Integer> mChildWidths = new ArrayList<Integer>(); private List<Integer> mChildHeights = new ArrayList<Integer>(); private boolean mDataChanged = false; private IFlingRunnable mFlingRunnable; private boolean mForceLayout; private int mDragTolerance = 0; private boolean mDragScrollEnabled; protected EdgeGlow mEdgeGlowLeft, mEdgeGlowRight; private int mOverScrollMode = OVER_SCROLL_NEVER; private Matrix mEdgeMatrix = new Matrix(); private ScrollNotifier mScrollNotifier; private SelectionMode mChoiceMode = SelectionMode.Single; private OnItemSelectedListener mOnItemSelected; private OnItemClickedListener mOnItemClicked; private OnItemDragListener mItemDragListener; private OnScrollChangedListener mScrollListener; private OnScrollFinishedListener mScrollFinishedListener; private OnLayoutChangeListener mLayoutChangeListener; public void setOnItemDragListener(OnItemDragListener listener) {  mItemDragListener = listener; } public void setOnScrollListener(OnScrollChangedListener listener) {  mScrollListener = listener; } public void setOnLayoutChangeListener(OnLayoutChangeListener listener) {  mLayoutChangeListener = listener; } public void setOnScrollFinishedListener(OnScrollFinishedListener listener) {  mScrollFinishedListener = listener; } public OnItemDragListener getOnItemDragListener() {  return mItemDragListener; }  public void setSelectionMode(SelectionMode mode) {  mChoiceMode = mode; }  public SelectionMode getChoiceMode() {  return mChoiceMode; }  public HorizontalVariableListView(Context context, AttributeSet attrs) {  super(context, attrs);  initView(); } public HorizontalVariableListView(Context context, AttributeSet attrs,   int defStyle) {  super(context, attrs, defStyle);  initView(); } private synchronized void initView() {  if (Build.VERSION.SDK_INT > 8) {   try {    mFlingRunnable = (IFlingRunnable) ReflectionUtils      .newInstance(        "com.iotdc.android.app.shopping.HorizontalVariableListView.widget.Fling9Runnable",        new Class<?>[] { FlingRunnableView.class,          int.class }, this, mAnimationDuration);   } catch (ReflectionException e) {    mFlingRunnable = new Fling8Runnable(this, mAnimationDuration);   }  } else {   mFlingRunnable = new Fling8Runnable(this, mAnimationDuration);  }  mLeftViewIndex = -1;  mRightViewIndex = 0;  mMaxX = Integer.MAX_VALUE;  mMinX = 0;  mRightEdge = 0;  mLeftEdge = 0;  mGesture = new GestureDetector(getContext(), mGestureListener);  mGesture.setIsLongpressEnabled(false);  setFocusable(true);  setFocusableInTouchMode(true);  ViewConfiguration configuration = ViewConfiguration.get(getContext());  mTouchSlop = configuration.getScaledTouchSlop();  mDragTolerance = mTouchSlop;  mOverscrollDistance = 10;  mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();  mMinimumVelocity = configuration.getScaledMinimumFlingVelocity(); } public void setOverScrollMode(int mode) {  mOverScrollMode = mode;  if (mode != OVER_SCROLL_NEVER) {   if (mEdgeGlowLeft == null) {    Drawable glow = getContext().getResources().getDrawable(      R.drawable.overscroll_glow);    Drawable edge = getContext().getResources().getDrawable(      R.drawable.overscroll_edge);    mEdgeGlowLeft = new EdgeGlow(edge, glow);    mEdgeGlowRight = new EdgeGlow(edge, glow);    mEdgeGlowLeft.setColorFilter(0xFF33b5e5, Mode.MULTIPLY);   }  } else {   mEdgeGlowLeft = mEdgeGlowRight = null;  } } public void setEdgeHeight(int value) {  mEdgesHeight = value; } public void setEdgeGravityY(int value) {  mEdgesGravityY = value; } @Override public void trackMotionScroll(int newX) {  scrollTo(newX, 0);  mCurrentX = getScrollX();  removeNonVisibleItems(mCurrentX);  fillList(mCurrentX);  invalidate(); } @Override protected void dispatchDraw(canvas canvas) {  super.dispatchDraw(canvas);  if (getChildCount() > 0) {   drawEdges(canvas);  } } ..... .... ....

当然了 , 这个类很复杂,就不把代码贴出来了, 在下面我们把这个demo代码上传的, 希望大家可以去下载,研究,然后把代码整合到自己的项目中使用.

package com.example.horizontallistview;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.Toast;import com.example.horizontallistview.hl.widget.HorizontalVariableListView;import com.example.horizontallistview.hl.widget.HorizontalVariableListView.OnItemClickedListener;public class MainActivity extends Activity { private HorizontalVariableListView lv; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  lv = (HorizontalVariableListView) findViewById(R.id.lv_horizontal);    String[] items = new String[20];    adapter = new MyAdapter(this, items);  lv.setAdapter(adapter);  lv.setSelectionMode(HorizontalVariableListView.SelectionMode.Single);    lv.setOnItemClickedListener(new OnItemClickedListener() {      @Override   public boolean onItemClick(AdapterView<?> parent, View view, int position,     long id) {    // 水平ListView的点击item事件    Toast.makeText(MainActivity.this, position + "", 1).show();    return false;   }  });   } @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; }}

在Activity中就是这么使用这个控件就行了, 是不是很简单,与Listview是一样的用法

我再把activity_main.xml文件代码贴出来

 <LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"     >    <com.example.horizontallistview.hl.widget.HorizontalVariableListView        android:id="@+id/lv_horizontal"        android:layout_width="match_parent"        android:layout_height="120dp"        android:layout_marginLeft="5dp"        android:layout_marginRight="5dp"        android:gravity="bottom|center_vertical"        android:paddingBottom="0dp"        android:paddingTop="0dp" /></LinearLayout>

到此,相信大家对“Android的ListView怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Android的ListView怎么使用

本文链接: https://lsjlt.com/news/295456.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android的ListView怎么使用
    本篇内容主要讲解“Android的ListView怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android的ListView怎么使用”吧!在Android开发 中,经常会要用到水平水...
    99+
    2023-06-19
  • Android中ListView怎么使用
    这篇文章主要讲解了“Android中ListView怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android中ListView怎么使用”吧!一、具体思路1、创建Listview控...
    99+
    2023-06-22
  • ListView控件怎么在Android中使用
    本篇文章给大家分享的是有关ListView控件怎么在Android中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、ListView的简单用法首先新建一个ListView...
    99+
    2023-05-30
    android listview
  • Android入门教程之ListView怎么使用
    在Android中,ListView是一种常用的界面元素,用于显示数据列表。下面是一个简单的示例,演示如何在Android中使用Li...
    99+
    2024-03-06
    Android ListView
  • 【android】ListView之BaseAdapter使用详解
    android中ListView是一个比较常用的控件,它用于方便的列表显示可见数据,当数据过多时,会出现滚动条,并且可以根据屏幕长度进行自适应显...
    99+
    2022-06-06
    baseadapter listview Android
  • listview在android中使用怎么实现多列模版
    listview在android中使用怎么实现多列模版?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。android listview多列模版<LinearLayout...
    99+
    2023-05-31
    android listview roi
  • Android ListView UI组件使用说明
    一、ListView 该组件是android中最常用的一个UI组件,用于实现在屏幕上显示​多个内容,以便于我们用手指来回翻转。 先在layout中进行布局我们的组件...
    99+
    2022-06-06
    listview Android
  • Android中ListView使用示例介绍
    目录一、具体思路1、创建Listview控件3、写入4、读取5、创建对象,构造器,GETSET方法二、具体实施1、适配器2、数据库3、对象4、等等等等三、案例分享activity_m...
    99+
    2024-04-02
  • Android之ListView的使用方法有哪些
    在Android中,有以下几种常见的ListView的使用方法:1. 使用ArrayAdapter:通过创建一个ArrayAdapt...
    99+
    2023-08-12
    Android ListView
  • Android中ListView的使用方法有哪些
    在Android中,可以使用以下几种方法来使用ListView:1. 使用ArrayAdapter:可以使用ArrayAdapter...
    99+
    2023-08-16
    Android ListView
  • android中的ListView
    在Android中有一个绝对称得上最常用的控件之一,几乎所有的应用都能用到它由于Android运行在手机上,手机屏幕的显示内容并不多,当我们的APP要大量显示数据时就需要用到ListView了ListView运行用户通过手指上下滑动的方式把...
    99+
    2023-06-04
  • Android中怎么使用ListView实现滚轮动画效果
    今天就跟大家聊聊有关Android中怎么使用ListView实现滚轮动画效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。   private ...
    99+
    2023-05-31
    android listview
  • Android ListView列表怎么优化
    这篇文章主要讲解了“Android ListView列表怎么优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android ListView列表怎么优化”吧!优化点1:...
    99+
    2023-06-30
  • Android中怎么利用 ListView填充数据
    本篇文章为大家展示了Android中怎么利用 ListView填充数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android ListView填充数据的方法代码如下:public c...
    99+
    2023-05-30
    android listview
  • Android使用ListView批量删除item的方法
    本文实例讲述了Android使用ListView批量删除item的方法。分享给大家供大家参考,具体如下: 利用CheckBox选中一个或多个item,最后批量删除它们。 程序运...
    99+
    2022-06-06
    方法 listview Android
  • Android组件ListView列表简单使用
    ListView是一种非常常见的一个组件,以垂直列表的形式显示列表项。而完成一个简单的ListView只需要这么三个步骤: 1、在布局文件XML中添加ListView并配置相...
    99+
    2022-06-06
    listview Android
  • Android中listview怎么刷新数据
    在Android中,可以使用Adapter的`notifyDataSetChanged()`方法来刷新ListView的数据。具体步...
    99+
    2023-08-19
    Android listview
  • Android编程使用缓存优化ListView的方法
    本文实例讲述了Android编程使用缓存优化ListView的方法。分享给大家供大家参考,具体如下: ListView调用Adapter的getView方法获取每一个Item布...
    99+
    2022-06-06
    方法 listview 缓存 Android
  • 使用Android studio编写简易demo之listView
    运行结果如下图:点击任意一列显示第几行 首先是MainActivity.java 启动类继承的是ListActivity类,onListItemClick方法用于点击一整列后...
    99+
    2022-06-06
    Android Studio studio listview demo Android
  • Android编程之控件ListView使用方法
    本文实例讲述了Android编程之控件ListView使用方法。分享给大家供大家参考。具体分析如下: 控件ListView是一个重要的控件,可以被用作用户列表等显示,下面进行它...
    99+
    2022-06-06
    程之 方法 listview Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作