ListView初次相遇

第一次学习listview知识,ListView在Activity的界面中算是最常用的一种每当我们需要使用到下拉菜单,如联系人,通讯录时,就要使用listview

他也是UI中较难的一种界面操作方式,因为我们需要多次修改已使其完全符合我们对数据的完整要求和对界面的可靠把握

说了这么多 我先撸一发最简单的Listview使用

1.在XML文件中注册此控件

<LinerLayout>
<ListView
android:id = "@+id/listview"
android:height="warp-parent"
android:width="match-parent"/>
</LinerLayout>


2.代码中使用listview

public class MainActivity extends AppCompatActivity {
    
    @Override
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        
        String[] list = {"1","2","3","4"};
        ListView listView = (ListView)findViewById(R.id.listview);
       ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,list);
        listView.setAdapter(arrayAdapter);
    }
}
当然,不要在主界面进行网络操作,这样一个简单的listview就写好啦



如何设置一个自定义的listview呢?

根据 《第一行代码》大师的讲解,这个过程分为4步

1.在xml文件中配置一个基础的item条框,使其显示一条记录

<?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:horization=""
>
<ImageView
    android:id="@+id/fruit_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/fruit_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

2.添加一个子类,类似于String这样的类型

package mainclass.liu.com.testapp;

/**
 * Created by Administrator on 2016/4/26.
 */
public class Fruit {
    int imageID;
    String name;
    public  Fruit(String name,int imageID)
    {
         this.name = name;
         this.imageID=imageID;
    }

    public String getName()
    {
        return  name;
    }

    public int getImageID()
    {
        return  imageID;
    }
}

3添加一个FruitAdapter,做用类似于ArrayAdapter

package mainclass.liu.com.testapp;

import android.content.Context;
import android.media.Image;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import java.util.List;

/**
 * Created by Administrator on 2016/4/26.
 */
public class fruitAdapter extends ArrayAdapter<fruit> {
    private Integer resourceID;
    public fruitAdapter(Context context, int resource, List<fruit> objects) {//构造函数
        super(context, resource, objects);
        resourceID=resource;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        fruit Fruit = getItem(position);
        View view = LayoutInflater.from(getContext()).inflate(resourceID, null);
        ImageView imageView = (ImageView)view.findViewById(R.id.fruit_image);
        TextView  textView  = (TextView)view.findViewById(R.id.fruit_text);
        imageView.setImageResource(Fruit.getImageID());
        textView.setText(Fruit.getName());
        return super.getView(position, convertView, parent);
    }
}

最后像ArrayAdapter一样使用就好啦,前提是你先设计好list<fruit>里的内容!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值