android 常用控件listview的使用(二)

在 android开发中普通的listview不能满足我们的需要,这时我们需要自定义listivew的Item的布局以满足我们的需求。
下面假设我们要完成下面的页面布局
这里写图片描述
在上一片文章中提到使用listview_Item.xml文件自定义listview的Item的布局。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/picture"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_margin="10dp" />

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

        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="TextView" />

        <TextView
            android:id="@+id/introduce"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="TextView" />

    </LinearLayout>

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

</LinearLayout>

ManActivity.java的实现

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {
    private ListView listView = null;
    private MyAdapter myAdapter;
    //图片资源
    int[] a = new int[]{R.drawable.maaa, R.drawable.mao,
            R.drawable.maoa, R.drawable.maoaa, R.drawable.maoaaa};
    //创建适配器
    private class MyAdapter extends BaseAdapter {

        @Override
        public int getCount() {
            return 5;
        }//此处return几就有几个Item

        @Override
        public Object getItem(int position) {
            return position;
        }//position从零开始代表当前Item位置

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            //设置listview的Item的布局
            convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.listview_item, null);
            //将数据放入布局相应位置
            TextView text = (TextView) convertView.findViewById(R.id.name);
            text.setText("猫"+(position+1));
            TextView text1 = (TextView) convertView.findViewById(R.id.introduce);
            text1.setText("猫"+(position+1)+"简介");
            ImageView imageView = (ImageView) convertView.findViewById(R.id.picture);
            imageView.setImageResource(a[position]);
            return convertView;
        }
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.listView);
        myAdapter = new MyAdapter();
        //关联适配器
        listView.setAdapter(myAdapter);
    }
}

顺便提一下listview的Item点击事件的设置方法

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //此处设置点击事件,用position定位Item设置每个Item的响应。
            }
        });

在开发过程中经常需要用到下啦刷新,在这部分我使用的是google官方下拉刷新空件SwipeRefreshLayout。
xml文件中的代码

<android.support.v4.widget.SwipeRefreshLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:id="@+id/swipeLayout" >
        <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listView"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</android.support.v4.widget.SwipeRefreshLayout>

MainActivity中的代码

SwipeRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(R.id.swipeLayout);
//设置下拉动画的颜色        SwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright, android.R.color.holo_green_light,
                android.R.color.holo_orange_light, android.R.color.holo_red_light);
        SwipeRefreshLayout.setSize(SwipeRefreshLayout.DEFAULT);
        SwipeRefreshLayout.setProgressViewEndTarget(true, 100);
        SwipeRefreshLayout.setOnRefreshListener(new android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        //此处设置下拉刷新需要的操作

                        //结束刷新
               SwipeRefreshLayout.setRefreshing(false);
                    }
                }).start();
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值