• Spinner与适配器模式总结


    今天开始编辑我的第一篇博客。

    ---------------------------------------------------------------------------------------------

    最近在找安卓开发的实习,可是面试N家公司,迟迟没有合适的机会。索性就自己看着视频教学来学点东西呗。



    Spinner

    是一个下拉列表,往安卓界面中拖拽一个Spinner控件,在属性中设置android:entries=“@array/spinner_data”

    其中spinner_data为在string中设置的数组。数组中由固定写好的值。此时便可在界面设置好下拉列表。

    <Spinner
            android:id="@+id/spinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView1"
            android:layout_below="@+id/textView1"
            android:layout_marginTop="17dp"
            android:entries="@array/spinner_data"/>
    当然为了用户体验好,可以设置 android:spinnerMode="dialog"属性,可以使下拉列表有弹出框。


    适配器:

    适配器主要负责从数据源中抓取数据,传向各个UI组件。主要的适配器adapter由ArrayAdapter和BaseAdapter。 即适配器负责从某个数据源比如数组中得到数据传向Spinner,显示在界面上。

    首先定义数据源

    private String[] ss=new String[]{
    		"猫咪",
    		"老虎",
    		"狮子",
    			
    	};

    数据源2

    private List<String> list=new ArrayList<String>();
    list.add("百度");
    		list.add("腾讯");
    		list.add("阿里巴巴");

    其次定义一个类Myadapter继承与抽象类BaseAdapter,抽象方法有四个。

    private class Myadapter extends BaseAdapter{
    
    	@Override
    	public int getCount</span>() {
    		// TODO Auto-generated method stub
    		return ss.length;
    	}
    
    	@Override
    	public Object getItem(int position) {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public long getItemId(int position) {
    		// TODO Auto-generated method stub
    		return 0;
    	}
    
    	@Override
    	public View getView</span>(int position, View convertView, ViewGroup parent) {
    		// TODO Auto-generated method stub
    		TextView textView=new TextView(MainActivity.this);
    		textView.setText(ss[position]);
    		
    		return textView;
    	}
    然后再主函数中

    Spinner spinner=(Spinner) findViewById(R.id.spinner1);
    		BaseAdapter adapter=new Myadapter();
    		spinner.setAdapter(adapter);

    先找到Spinner控件,并且实例化new一个adapter。通过adapter适配器来抓取数据源ss中的数据。

    BaseAdapter适配器最重要的方法是getcount()以及getview()方法。前者返回数据源的长度,后者进行一些操作。



    当然可以使用更简单的ArrayAdaper适配器。

    Spinner spinner=(Spinner) findViewById(R.id.spinner1);
    		ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,ss);
    		spinner.setAdapter(adapter);
    通过以上语句,可以直接定位在数组ss中。

    欢迎添加QQ956283501,一起讨论交流。












  • 相关阅读:
    白话经典算法系列之六 高速排序 高速搞定
    簡單SQL存儲過程實例
    ACE编译运行错误解决
    shell之变量与read
    Java实现第八届蓝桥杯魔方状态
    Java实现第八届蓝桥杯魔方状态
    Java实现第八届蓝桥杯魔方状态
    Java实现第八届蓝桥杯魔方状态
    Java实现第八届蓝桥杯购物单
    Java实现第八届蓝桥杯购物单
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467355.html
Copyright © 2020-2023  润新知