安卓中ListView中嵌套ListView的例子

 更新时间:2016年10月2日 16:24  点击:1404
在安卓中ListView 控件可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本,下面我们来看一个ListView中嵌套ListView的例子吧。


平常我们使用ListView已是司空见惯,但是当ListView的item也是一个ListView的时候就显得有些棘手了,或是遇到数据加载显示不出来,或是遇到只加载一个item,或是遇到滑动混乱数据混乱等等问题,我想说的是ListView的item要使用自定义的ListView就可以解决这一系列问题。

MainActivity:

package zm.listviewnesting;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;


public class MainActivity extends Activity {
    private ListView list_one;
    private AreaAdapter areaAdapter;
    private List<AreaEntity> areaEneities = new ArrayList<AreaEntity>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list_one = (ListView) findViewById(R.id.list_one);

        for (int i = 0; i < 10; i++) {
            AreaEntity areaEntity = new AreaEntity(i + "", "大众");
            areaEneities.add(areaEntity);
        }

        getdata();
    }

    private void getdata() {
        areaAdapter = new AreaAdapter(areaEneities, this);
        list_one.setAdapter(areaAdapter);
    }

    class AreaAdapter extends BaseAdapter {

        private List<AreaEntity> areaEneity;
        private LayoutInflater mInflater;
        private Context mContext;

        public AreaAdapter(List<AreaEntity> areaEneities, Context context) {
            super();
            this.areaEneity = areaEneities;
            this.mInflater = LayoutInflater.from(context);
            this.mContext = context;
        }


        @Override
        public int getCount() {
            return areaEneity.size();
        }

        @Override
        public Object getItem(int position) {
            return areaEneity.get(position);
        }

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

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


            ViewHolder holder;
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.item_list_one, null);
                holder = new ViewHolder();
                holder.tv_car = (TextView) convertView.findViewById(R.id.tv_car);
                holder.list_two = (MyListView) convertView.findViewById(R.id.list_two);
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }

            holder.tv_car.setText(areaEneity.get(position).getArea());

            List<AreaEntity> areaEneities = new ArrayList<AreaEntity>();
            AreaAdapterTwo areaAdapter = new AreaAdapterTwo(areaEneities, mContext);
            holder.list_two.setAdapter(areaAdapter);

            for (int i = 0; i < 3; i++) {
                AreaEntity areaEntity = new AreaEntity(i + "", "L15");
                areaEneities.add(areaEntity);
            }
            return convertView;
        }

        class ViewHolder {
            private TextView tv_car;
            private MyListView list_two;
        }
    }


    class AreaAdapterTwo extends BaseAdapter {

        private List<AreaEntity> areaEneity;
        private LayoutInflater mInflater;
        private Context mContext;

        public AreaAdapterTwo(List<AreaEntity> areaEneities, Context context) {
            super();
            this.areaEneity = areaEneities;
            this.mInflater = LayoutInflater.from(context);
            this.mContext = context;
        }


        @Override
        public int getCount() {
            return areaEneity.size();
        }

        @Override
        public Object getItem(int position) {
            return areaEneity.get(position);
        }

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

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


            ViewHolder holder;
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.item_list_two, null);
                holder = new ViewHolder();
                holder.tv_count = (TextView) convertView.findViewById(R.id.tv_count);
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }

            holder.tv_count.setText(areaEneity.get(position).getArea());
            return convertView;
        }

        class ViewHolder {
            private TextView tv_count;
        }
    }

}

自定义ListView:=====MyListView:

package zm.listviewnesting;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

/**
 * 作者:joy on 2015/11/27 10:23
 */
public class MyListView extends ListView {
    public MyListView(Context context) {
        super(context);
    }

    public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);

    }
}

直接在布局文件中引用就可以了,注意包名:

<zm.listviewnesting.MyListView
    android:id="@+id/list_two"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供,BroadcastReceiver广播接收器)之一,下面我们来看Android中Activity之间的切换动画例子。


Activity进行切换的时候可以加入一些炫酷的动画,
实现代码如下:

MainActivity:

package com.example.administrator.swichlayoutdemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;

import com.tandong.swichlayout.BaseEffects;
import com.tandong.swichlayout.SwitchLayout;

public class MainActivity extends Activity {
    private Button btn_ok, btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7,
            btn_8, btn_9, btn_10, btn_11, btn_12, btn_13, btn_14;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        // 设置进入Activity的Activity特效动画,同理可拓展为布局动画
        SwitchLayout.getSlideFromBottom(this, false,
                BaseEffects.getQuickToSlowEffect());
        // 三个参数分别为(Activity/View,是否关闭Activity,特效(可为空))
        initListener();
    }

    private void initListener() {
        btn_ok.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 0);
                MainActivity.this.startActivity(in);
            }
        });

        btn_1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 1);
                MainActivity.this.startActivity(in);
            }
        });
        btn_2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 2);
                MainActivity.this.startActivity(in);
            }
        });
        btn_3.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 3);
                MainActivity.this.startActivity(in);
            }
        });
        btn_4.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 4);
                MainActivity.this.startActivity(in);
            }
        });
        btn_5.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 5);
                MainActivity.this.startActivity(in);
            }
        });
        btn_6.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 6);
                MainActivity.this.startActivity(in);
            }
        });

        btn_7.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 7);
                MainActivity.this.startActivity(in);
            }
        });
        btn_8.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 8);
                MainActivity.this.startActivity(in);
            }
        });
        btn_9.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 9);
                MainActivity.this.startActivity(in);
            }
        });
        btn_10.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 10);
                MainActivity.this.startActivity(in);
            }
        });
        btn_11.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 11);
                MainActivity.this.startActivity(in);
            }
        });
        btn_12.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 12);
                MainActivity.this.startActivity(in);
            }
        });
        btn_13.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 13);
                MainActivity.this.startActivity(in);
            }
        });
        btn_14.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in = new Intent(MainActivity.this, SecondActivity.class);
                in.putExtra("key", 14);
                MainActivity.this.startActivity(in);
            }
        });
    }

    private void initView() {
        btn_ok = (Button) this.findViewById(R.id.btn_ok);
        btn_1 = (Button) this.findViewById(R.id.btn_1);
        btn_2 = (Button) this.findViewById(R.id.btn_2);
        btn_3 = (Button) this.findViewById(R.id.btn_3);
        btn_4 = (Button) this.findViewById(R.id.btn_4);
        btn_5 = (Button) this.findViewById(R.id.btn_5);
        btn_6 = (Button) this.findViewById(R.id.btn_6);
        btn_7 = (Button) this.findViewById(R.id.btn_7);
        btn_8 = (Button) this.findViewById(R.id.btn_8);
        btn_9 = (Button) this.findViewById(R.id.btn_9);
        btn_10 = (Button) this.findViewById(R.id.btn_10);
        btn_11 = (Button) this.findViewById(R.id.btn_11);
        btn_12 = (Button) this.findViewById(R.id.btn_12);
        btn_13 = (Button) this.findViewById(R.id.btn_13);
        btn_14 = (Button) this.findViewById(R.id.btn_14);

    }
}
SecondActivity:

package com.example.administrator.swichlayoutdemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageView;

import com.tandong.swichlayout.BaseEffects;
import com.tandong.swichlayout.SwichLayoutInterFace;
import com.tandong.swichlayout.SwitchLayout;

public class SecondActivity extends Activity implements SwichLayoutInterFace {
    private Intent intent;
    private ImageView iv_back;
    private int key = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        initIntent();
        // 设置进入Activity的Activity特效动画,同理可拓展为布局动画
        setEnterSwichLayout();
    }

    private void initIntent() {
        intent = getIntent();
        key = intent.getExtras().getInt("key");
        iv_back = (ImageView) this.findViewById(R.id.iv_back);
        iv_back.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                setExitSwichLayout();
            }
        });
    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {// 按返回键时退出Activity的Activity特效动画

        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            setExitSwichLayout();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    @Override
    public void setEnterSwichLayout() {
        switch (key) {
            case 0:
                SwitchLayout.get3DRotateFromLeft(this, false, null);
                // 三个参数分别为(Activity/View,是否关闭Activity,特效(可为空))
                break;
            case 1:
                SwitchLayout.getSlideFromBottom(this, false,
                        BaseEffects.getMoreSlowEffect());
                break;
            case 2:
                SwitchLayout.getSlideFromTop(this, false,
                        BaseEffects.getReScrollEffect());
                break;
            case 3:
                SwitchLayout.getSlideFromLeft(this, false,
                        BaseEffects.getLinearInterEffect());
                break;
            case 4:
                SwitchLayout.getSlideFromRight(this, false, null);
                break;
            case 5:
                SwitchLayout.getFadingIn(this);
                break;
            case 6:
                SwitchLayout.ScaleBig(this, false, null);
                break;
            case 7:
                SwitchLayout.FlipUpDown(this, false,
                        BaseEffects.getQuickToSlowEffect());
                break;
            case 8:
                SwitchLayout.ScaleBigLeftTop(this, false, null);
                break;
            case 9:
                SwitchLayout.getShakeMode(this, false, null);
                break;
            case 10:
                SwitchLayout.RotateLeftCenterIn(this, false, null);
                break;
            case 11:
                SwitchLayout.RotateLeftTopIn(this, false, null);
                break;
            case 12:
                SwitchLayout.RotateCenterIn(this, false, null);
                break;
            case 13:
                SwitchLayout.ScaleToBigHorizontalIn(this, false, null);
                break;
            case 14:
                SwitchLayout.ScaleToBigVerticalIn(this, false, null);
                break;
            default:
                break;
        }

    }

    @Override
    public void setExitSwichLayout() {
        switch (key) {
            case 0:
                SwitchLayout.get3DRotateFromRight(this, true, null);
                break;
            case 1:
                SwitchLayout.getSlideToBottom(this, true,
                        BaseEffects.getMoreSlowEffect());
                break;
            case 2:
                SwitchLayout.getSlideToTop(this, true,
                        BaseEffects.getReScrollEffect());
                break;
            case 3:
                SwitchLayout.getSlideToLeft(this, true,
                        BaseEffects.getLinearInterEffect());
                break;
            case 4:
                SwitchLayout.getSlideToRight(this, true, null);
                break;
            case 5:
                SwitchLayout.getFadingOut(this, true);
                break;
            case 6:
                SwitchLayout.ScaleSmall(this, true, null);
                break;
            case 7:
                SwitchLayout.FlipUpDown(this, true,
                        BaseEffects.getQuickToSlowEffect());
                break;
            case 8:
                SwitchLayout.ScaleSmallLeftTop(this, true, null);
                break;
            case 9:
                SwitchLayout.getShakeMode(this, true, null);
                break;
            case 10:
                SwitchLayout.RotateLeftCenterOut(this, true, null);
                break;
            case 11:
                SwitchLayout.RotateLeftTopOut(this, true, null);
                break;
            case 12:
                SwitchLayout.RotateCenterOut(this, true, null);
                break;
            case 13:
                SwitchLayout.ScaleToBigHorizontalOut(this, true, null);
                break;
            case 14:
                SwitchLayout.ScaleToBigVerticalOut(this, true, null);
                break;
            default:
                break;
        }

    }

}
 

其中强大的动画效果依赖于动画库SwitchLayout1.0.jar包

webview非常的强大可以直接加载网页文件到安卓app中直接显示了我们下面来看一篇关于webview加载flash视频黑屏的方法细节了,具体的操作如下所示。


今天,项目需求修改,需要加载flash视频,本以为很简单,写好代码:

webView = (WebView) view.findViewById(R.id.web);
WebSettings settings = webView.getSettings();
settings.setPluginState(WebSettings.PluginState.ON);

然后

webView.loadUrl(“你的URL”);

然后满心欢喜的去看效果,结果,如果闭着眼睛,是很完美的,因为音乐很优美,但是睁眼一看!我去 黑屏!,然后找原因吧,百度各种方法,让我真正的感受了百度的坑,和百度的神,坑在于许多百度的内容,都是重复的,更有甚者,直接复制的。

神,在于我终于再一次的找到了问题的原因!!

现在说一下,我,webview加载flash黑屏的原因!不是因为没启动插件,不是因为没在application节点开启硬件加速!

而是!在webview布局处,写错了一行代码:

android:layerType="software"

把这个属性,改成:

android:layerType="hardware"

解决了问题,希望各位看官能解决自己的问题

Android与JS数据交互在用户点击时由js反馈数据给安卓然后进行显示了,下面我们来看一个点击webview里的图片放大的例子,具体的细节操作如下所示。

废话不多说,直接上代码:

private WebView mWebView;
mWebView.getSettings().setJavaScriptEnabled(true);//这个没的说,首先得支持js
mWebView.loadUrl("www.111cn.net");
mWebView.addJavascriptInterface(new MyJavascriptInterface(this), "imagelistner");//自定义一个MyJavascript接口
mWebView.setWebViewClient(new MyWebViewClient());//MyWebViewClient继承于WebViewClient
MyJavascriptInterface:

// js通信接口

public class MyJavascriptInterface {
    private Context context;
    public MyJavascriptInterface(Context context) {
        this.context = context;
    }
    @JavascriptInterface //值得注意的是,当你的openImage方法没有被执行,也就是说mWebView.addJavascriptInterface没有作用
那么就请在这里加上@JavascriptInterface,加之前记得先导入
    public void openImage(String img) {
        System.out.println(img);
        Intent intent = new Intent();
        intent.putExtra("image", img);
        intent.setClass(context, ShowWebImageActivity.class);
        context.startActivity(intent);
        System.out.println(img);
    }
}
private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return super.shouldOverrideUrlLoading(view, url);
    }
    @Override
    public void onPageFinished(WebView view, String url) {
        view.getSettings().setJavaScriptEnabled(true);
        super.onPageFinished(view, url);
        // html加载完成之后,添加监听图片的点击js函数
        addImageClickListner();//这个方法在下面
    }
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        view.getSettings().setJavaScriptEnabled(true);
        super.onPageStarted(view, url, favicon);
    }
    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        super.onReceivedError(view, errorCode, description, failingUrl);
    }
}
 

// 注入js函数监听

private void addImageClickListner() {
    // 这段js函数的功能就是,遍历所有的img几点,并添加onclick函数,在还是执行的时候调用本地接口传递url过去
    mWebView.loadUrl("javascript:(function(){" +
            "var objs = document.getElementsByTagName(\"img\"); " +
            "for(var i=0;i<objs.length;i++)  " +
            "{"
            + "    objs[i].onclick=function()  " +
            "    {  "
            + "        window.imagelistner.openImage(this.src);  " +
            "    }  " +
            "}" +
            "})()");
}

显示图片的类

package cn.zmit.xiangrikui.test;


import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.widget.ImageView;

import com.squareup.picasso.Picasso;

import cn.zmit.xiangrikui.R;

public class ShowWebImageActivity extends Activity {
    private String imagePath = null;
    private ImageView imageView = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.show_webimage);
        imagePath = getIntent().getStringExtra("image");
        imageView = (ImageView) findViewById(R.id.show_webimage_imageview);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        com.squareup.picasso.Target target = new com.squareup.picasso.Target() {
            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                imageView.setImageBitmap(big(bitmap));
            }

            @Override
            public void onBitmapFailed(Drawable errorDrawable) {

            }

            @Override
            public void onPrepareLoad(Drawable placeHolderDrawable) {

            }
        };
        Picasso.with(this).load(imagePath).into(target);
    }

    public Bitmap big(Bitmap b) {
        Display d = (ShowWebImageActivity.this).getWindowManager().getDefaultDisplay();
        int x = d.getWidth();//当前屏幕宽度   px
        int y = d.getHeight();//当前屏幕高度  px
       
        int w = b.getWidth();
        int h = b.getHeight();
       
        float sx = (float) x / w;//要强制转换,不转换我的在这总是死掉。
        float sy = (float) y / h;
        float total=Math.min(sx,sy);
        Matrix matrix = new Matrix();
        matrix.postScale(total, total); // 长和宽放大缩小的比例
        Bitmap resizeBmp = Bitmap.createBitmap(b, 0, 0, w,
                h, matrix, true);
        return resizeBmp;
    }
}

listview在安卓开发中我们经常的用到了今天我们来看一篇关于Android可上下左右滑的listview例子,希望这篇文章能够让各位深入的理解到listview的使用。

之前没有用到过这样需求的listview,最近项目需求,所以写了一下,很顺利,下面上代码

1、activity_test

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/tv_one"
                    android:layout_width="100dp"
                    android:layout_height="50dp"
                    android:gravity="center"
                    android:text="一年级"
                    android:textColor="@color/black"
                    android:textSize="@dimen/medium_text_size" />

                <TextView
                    android:id="@+id/tv_two"
                    android:layout_width="100dp"
                    android:layout_height="50dp"
                    android:gravity="center"
                    android:text="二年级"
                    android:textColor="@color/black"
                    android:textSize="@dimen/medium_text_size" />

                <TextView
                    android:id="@+id/tv_three"
                    android:layout_width="100dp"
                    android:layout_height="50dp"
                    android:gravity="center"
                    android:text="三年级"
                    android:textColor="@color/black"
                    android:textSize="@dimen/medium_text_size" />


                <TextView
                    android:id="@+id/tv_four"
                    android:layout_width="100dp"
                    android:layout_height="50dp"
                    android:gravity="center"
                    android:text="四年级"
                    android:textColor="@color/black"
                    android:textSize="@dimen/medium_text_size" />

                <TextView
                    android:id="@+id/tv_five"
                    android:layout_width="100dp"
                    android:layout_height="50dp"
                    android:gravity="center"
                    android:text="五年级"
                    android:textColor="@color/black"
                    android:textSize="@dimen/medium_text_size" />

            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="@color/view"></View>

            <ListView
                android:id="@+id/lv_test"
                android:layout_width="match_parent"
                android:layout_height="match_parent"></ListView>
        </LinearLayout>
    </HorizontalScrollView>
</LinearLayout>


2、item_test

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv_one"
                android:layout_width="100dp"
                android:layout_height="50dp"
                android:gravity="center"
                android:text="一年级"
                android:textColor="@color/black"
                android:textSize="@dimen/medium_text_size" />

            <TextView
                android:id="@+id/tv_two"
                android:layout_width="100dp"
                android:layout_height="50dp"
                android:gravity="center"
                android:text="二年级"
                android:textColor="@color/black"
                android:textSize="@dimen/medium_text_size" />

            <TextView
                android:id="@+id/tv_three"
                android:layout_width="100dp"
                android:layout_height="50dp"
                android:gravity="center"
                android:text="三年级"
                android:textColor="@color/black"
                android:textSize="@dimen/medium_text_size" />


            <TextView
                android:id="@+id/tv_four"
                android:layout_width="100dp"
                android:layout_height="50dp"
                android:gravity="center"
                android:text="四年级"
                android:textColor="@color/black"
                android:textSize="@dimen/medium_text_size" />

            <TextView
                android:id="@+id/tv_five"
                android:layout_width="100dp"
                android:layout_height="50dp"
                android:gravity="center"
                android:text="五年级"
                android:textColor="@color/black"
                android:textSize="@dimen/medium_text_size" />

        </LinearLayout>

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@color/view"></View>
    </LinearLayout>
</LinearLayout>


3、TestActivity(包括了Adapter)

package cn.zmit.frame.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

import cn.zmit.frame.R;

/**
* Created by kyle on 2016/5/13 0013.
*/
public class TestActivity extends Activity {
private List<String[]> lists = new ArrayList<>();
ListView mLvTest;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tests);
mLvTest= (ListView) findViewById(R.id.lv_test);
for(int i=0;i<15;i++){
String[]strings={“蛮王”+i,”剑圣”+i,”赵信”+i,”小龙”+i,”大龙”+i};
lists.add(strings);
}
mLvTest.setAdapter(new MyAdapter());
}
private class MyAdapter extends BaseAdapter {

@Override
public int getCount() {
return lists.size();
}

@Override
public Object getItem(int position) {
return lists.get(position);
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
MyHolder holder;
if (convertView == null) {
convertView = View.inflate(TestActivity.this, R.layout.item_test, null);
holder = new MyHolder();
holder.mTvOne = (TextView) convertView.findViewById(R.id.tv_one);
holder.mTvTwo = (TextView) convertView.findViewById(R.id.tv_two);
holder.mTvThree = (TextView) convertView.findViewById(R.id.tv_three);
holder.mTvFour = (TextView) convertView.findViewById(R.id.tv_four);
holder.mTvFive = (TextView) convertView.findViewById(R.id.tv_five);
convertView.setTag(holder);
}else {
holder= (MyHolder) convertView.getTag();
}
holder.mTvOne.setText(lists.get(position)[0]);
holder.mTvTwo.setText(lists.get(position)[1]);
holder.mTvThree.setText(lists.get(position)[2]);
holder.mTvFour.setText(lists.get(position)[3]);
holder.mTvFive.setText(lists.get(position)[4]);
return convertView;
}
}

private class MyHolder {
private TextView mTvOne;
private TextView mTvTwo;
private TextView mTvThree;
private TextView mTvFour;
private TextView mTvFive;
}
}

[!--infotagslink--]

相关文章

  • Spring AOP 对象内部方法间的嵌套调用方式

    这篇文章主要介绍了Spring AOP 对象内部方法间的嵌套调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-29
  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • C#实现带进度条的ListView

    这篇文章主要介绍了C#实现带进度条的ListView 的相关资料,需要的朋友可以参考下...2020-06-25
  • php使用floor去掉小数点的例子

    floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
  • C#获取鼠标在listview右键点击单元格的内容方法

    下面小编就为大家带来一篇C#获取鼠标在listview右键点击单元格的内容方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • vue.js Router中嵌套路由的实用示例

    这篇文章主要给大家介绍了关于vue.js Router中嵌套路由的相关资料,所谓嵌套路由就是路由里面嵌套他的子路由,文章通过示例代码介绍的非常详细,需要的朋友可以参考下...2021-06-27
  • C#实现读取DataSet数据并显示在ListView控件中的方法

    这篇文章主要介绍了C#实现读取DataSet数据并显示在ListView控件中的方法,涉及C#操作DataSet及ListView控件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • python使用for...else跳出双层嵌套循环的方法实例

    这篇文章主要给大家介绍了关于python使用for...else跳出双层嵌套循环的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-05-18
  • C# WPF ListView控件的实例详解

    这篇文章主要介绍了C# WPF ListView控件的实例详解的相关资料,希望通过本能帮助到大家,让大家掌握这部分内容,需要的朋友可以参考下...2020-06-25
  • C#中将ListView中数据导出到Excel的实例方法

    首先 你需要添加引用Microsoft Excel 11.0 Object Library...2020-06-25
  • C# listview添加combobox到单元格的实现代码

    从别处转来的,自己进行了一些小的修改,还不错,你自己先拖一个ListView1和一个ComboBox1,需要的朋友可以参考下...2020-06-25
  • C#中WPF ListView绑定数据的实例详解

    这篇文章主要介绍了C#中WPF ListView绑定数据的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下...2020-06-25
  • 在vue中实现嵌套页面(iframe)

    这篇文章主要介绍了在vue中实现嵌套页面(iframe),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-31
  • 纯Css实现下拉菜单的简单例子

    下面我们来看一篇关于纯Css实现下拉菜单的简单例子,希望这篇文章能够给各位同学带来帮助,具体步骤如下. 大家可能会经常用到hover这属性,用hover实现鼠标经过的颜...2017-01-22
  • Java优化for循环嵌套的高效率方法

    这篇文章主要介绍了Java优化for循环嵌套的高效率方法,帮助大家更好的提升java程序性能,感兴趣的朋友可以了解下...2020-09-14
  • Antd的Table组件嵌套Table以及选择框联动操作

    这篇文章主要介绍了Antd的Table组件嵌套Table以及选择框联动操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-25
  • vue前端开发层次嵌套组件的通信详解

    vue通过provide & inject两个关键字完成父组件向子孙组件直接传值,很像子类能够使用父类的属性一样方便。provide & inject一般用于多层之间的传值,两层之间还是使用props进行...2021-10-10
  • php时间日期对比与日期加减例子

    在php中日期对比用得比较多了,还有一个日期加减也用到不少,下面我拿两个例子来给大家介绍在php中日期操作方法吧,希望文章能给你带来帮助 功能需求 文章发布时段操...2016-11-25
  • php更新修改excel中的内容例子

    本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。 代码如下 ...2016-11-25
  • php正则获取文章内容中图片地址例子

    正则提取图片中的地址我们介绍过很多的相关文章了,下面再来给各位介绍一个可以提取内容中第一张图片的例子,希望对各位有帮助。 代码如下 复制代码 ...2016-11-25