移动开发技术——实验5 Android高级控件的应用

  • 一、实验目的
  • 二、实验内容
    • 1.Spinner、ListView控件与Adapter适配器(一)
    • 2.Spinner、ListView控件与Adapter适配器(二)
    • 3.类似应用市场的界面和功能
    • 4.GridView控件

一、实验目的

  1. 掌握在XML布局文件中添加下拉列表、列表视图和网格视图的语法格式及其常用属性;
  2. 掌握获取下拉列表和列表视图选中项值的方法。
  3. 理解ListView显示的基本原理;
  4. 掌握开发ListView的基本要素;
  5. 掌握ListView+ArrayAdapter应用实现的基本步骤。
  6. 掌握ListView/GridView+SimpleAdapter的应用。

二、实验内容

1.Spinner、ListView控件与Adapter适配器(一)

创建一个Android项目,项目名称为“shiyan0501_班级_×××(学生姓名)”,要求:

  • 界面构成:
    ①5个文本框用于显示提示信息“姓名:”、“年龄”、“专业”、“学历”、“爱好”;
    ②2个编辑框分别用于接收学生的姓名和年龄;
    ③3个单选按钮用于专业选择(计算机科学与技术、软件工程、网络工程);
    ④1个Spinner用于学历选择,使用数组资源获取列表项(高中、本科、硕士研究生、博士研究生、其他);
    ⑤n个复选框用于爱好选择(n>=3);
    ⑥3个普通按钮,文本分别显示为“录入”、“重置”、“显示”;
    ⑦1个ListView,用于显示录入的所有学生信息。
  • 程序功能:
    ①单击“录入”按钮,将用户输入和选择的各项信息写入数组;
    ②单击“重置”按钮,清空用户输入的信息;
    ③单击“显示”按钮,将所有录入的学生信息在ListView中显示。
【文字描述】首先设置布局为TableLayout.
添加5个文本框用于显示提示信息;
再添加2个编辑框分别用于接收学生的姓名和年龄;
3个单选按钮用于专业选择(物联、计科、软件),并将其放入一个RadioGroup中;1个Spinner用于学历选择,使用数组资源获取列表项(高中、本科、硕士研究生、博士研究生、其他);
4个复选框用于爱好选择,并将其放入一个TableRow中;
3个普通按钮,文本分别显示为“录入”、“重置”、“显示”;
1个ListView,用于显示录入的所有学生信息。
添加一个array.xml文件,里面设置<string-array name="zhuanye">和<item>。
在JAVA代码中,获取到各个控件,通过内部类设置事件监听。进行相应的操作。

【布局activity_main.xml文件】<TableLayout 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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="姓名" /><EditText android:id="@+id/ED_name" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="年龄" /><EditText android:id="@+id/ED_age" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="专业" /><RadioGroupandroid:id="@+id/RadioGroup1"android:orientation="horizontal" ><RadioButtonandroid:id="@+id/radio_IOT"android:text="物联" /><RadioButtonandroid:id="@+id/radio_jike"android:text="计科" /><RadioButtonandroid:id="@+id/radio_ruanjian"android:text="软件" /></RadioGroup><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="学历" /><Spinnerandroid:id="@+id/spinner"android:entries="@array/zhuanye" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="爱好" /><TableRow android:id="@+id/CB_TR" ><CheckBox android:text="学习" /><CheckBox android:text="跑步" /><CheckBox android:text="看书" /><CheckBox android:text="音乐" /></TableRow><TableRow><Buttonandroid:id="@+id/submit_BT"android:layout_weight="1"android:text="录入" /><Buttonandroid:id="@+id/show_BT"android:layout_weight="1"android:text="显示" /><Buttonandroid:id="@+id/reset_BT"android:layout_weight="1"android:text="重置" /></TableRow><ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="wrap_content" ></ListView></TableLayout>
【Spinner组件的内容array.xml文件】
(此文件放在res——values文件夹下)<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="zhuanye"><item></item><item>高中</item><item>本科</item><item>硕士研究生</item><item>博士研究生</item><item>其他</item></string-array><string-array name="all_mess"></string-array></resources>
【布局adapter.xml适配器文件】
(此文件与布局activity_main.xml文件放在一起)<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent" android:id="@+id/myadapter"android:textSize="15sp"></TextView>
【MainActivity.java文件】import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.content.ClipData.Item;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TableRow;
import android.widget.TextView;public class MainActivity extends Activity {TextView show;EditText name_ET,age_ET;RadioGroup dep ;CheckBox hobby_CB;TableRow CB_TR;Spinner spinner;ListView listview;String name,age;String department="";String hobby="";String xueli="";Button sb_BT,rs_BT,show_BT;View item;ArrayList<String> allmess;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);name_ET=(EditText) findViewById(R.id.ED_name);age_ET=(EditText) findViewById(R.id.ED_age);dep = (RadioGroup) findViewById(R.id.RadioGroup1);spinner=(Spinner) findViewById(R.id.spinner);        listview=(ListView) findViewById(R.id.listview);allmess = new ArrayList<String>();CB_TR=(TableRow) findViewById(R.id.CB_TR);sb_BT=(Button) findViewById(R.id.submit_BT);sb_BT.setOnClickListener(new ClickListener());rs_BT=(Button) findViewById(R.id.reset_BT);rs_BT.setOnClickListener(new ClickListener());show_BT=(Button) findViewById(R.id.show_BT);show_BT.setOnClickListener(new ClickListener());dep.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {// TODO Auto-generated method stubRadioButton r;if(checkedId!=-1){r = (RadioButton) findViewById(checkedId);department=r.getText().toString();}else{department="";}}});  }class ClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.submit_BT:name=name_ET.getText().toString();age=age_ET.getText().toString();hobby="";for(int i=0;i<CB_TR.getChildCount();i++){CheckBox c = (CheckBox) CB_TR.getChildAt(i);if(c.isChecked()){hobby+=c.getText().toString()+" ";}}xueli=spinner.getSelectedItem().toString();allmess.add(name+" "+age+" "+department+" "+xueli+" "+hobby);break;case R.id.reset_BT:name_ET.setText("");age_ET.setText("");dep.clearCheck();spinner.setSelection(0);for(int i=0;i<CB_TR.getChildCount();i++){CheckBox c = (CheckBox) CB_TR.getChildAt(i);c.setChecked(false);}break;case R.id.show_BT:ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,// android.R.layout.simple_list_item_1,R.layout.adapter,allmess);listview.setAdapter(adapter);break;}}}
}

2.Spinner、ListView控件与Adapter适配器(二)

创建一个Android项目,项目名称为“shiyan0502_专业_×××(学生姓名)”,要求:

  • 界面构成:
    ①5个文本框用于显示提示信息“图书名称:”、“图书价格”、“图书版次”“图书类别”、“出版社”;
    ②2个编辑框分别用于接收图书的名称和价格;
    ③4个单选按钮用于版次选择(1版、2版、3版、3版以上);
    ④n个复选框用于类别选择(教育、计算机、小说、科技、励志、文学等);
    ⑤1个Spinner用于出版社选择,使用数组资源获取列表项(人民邮电出版社、科学出版社、高等教育出版社、清华大学出版社,其他等);
    ⑥3个普通按钮,文本分别显示为“录入”、“重置”、“显示”;
    ⑦1个ListView,用于显示录入的所有图书信息。
  • 程序功能:
    ①单击“录入”按钮,将用户输入和选择的各项信息写入数组;
    ②单击“重置”按钮,清空用户输入的信息;
    ③单击“显示”按钮,将所有录入的图书信息在ListView中显示。
【文字描述】首先使用TableLayout布局:
添加5个文本框用于显示提示信息
2个编辑框分别用于接收图书的名称和价格;
4个单选按钮用于版次选择,并将其放入一个RadioGroup中;
6个复选框用于类别选择,3个为一组放入TableRow中;
1个Spinner用于出版社选择,使用数组资源获取列表项,
并在res_value文件夹下创建一个array.xml的文件,里面存入数组资源列表。
3个普通按钮,文本分别显示为“录入”、“重置”、“显示”;
1个ListView,用于显示录入的所有图书信息。
在Java代码中获取到所有的编辑框、RadioGroup、
含有CheckBox的TableRow、三个按钮、spinner和listview,
并对三个按钮设置事件监听。
【布局activity_main.xml文件】<TableLayout 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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="图书名称" /><EditText android:id="@+id/ED_name" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="图书价格" /><EditText android:id="@+id/ED_prize" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="图书版次" /><RadioGroupandroid:id="@+id/RadioGroup1"android:orientation="horizontal" ><RadioButtonandroid:id="@+id/radio_1"android:text="1版" /><RadioButtonandroid:id="@+id/radio_2"android:text="2版" /><RadioButtonandroid:id="@+id/radio_3"android:text="3版" /><RadioButtonandroid:id="@+id/radio_3p"android:text="3版以上" /></RadioGroup><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="图书类别" /><TableRow android:id="@+id/CB_TR" ><CheckBox android:text="教育" /><CheckBox android:text="计算机" /><CheckBox android:text="小说" /></TableRow><TableRow android:id="@+id/CB_TR2" ><CheckBox android:text="励志" /><CheckBox android:text="科技" /><CheckBox android:text="文学" /></TableRow><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="出版社" /><Spinnerandroid:id="@+id/spinner"android:entries="@array/publisher" /><TableRow><Buttonandroid:id="@+id/submit_BT"android:layout_weight="1"android:onClick="register"android:text="录入" /><Buttonandroid:id="@+id/show_BT"android:layout_weight="1"android:onClick="show"android:text="显示" /><Buttonandroid:id="@+id/reset_BT"android:layout_weight="1"android:onClick="reset"android:text="重置" /></TableRow><ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="wrap_content" ></ListView></TableLayout>
【布局adapter.xml适配器文件】
(此文件与布局activity_main.xml文件放在一起)<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/myadapter"android:layout_width="match_parent"android:layout_height="match_parent"android:textSize="15sp" ></TextView>
【Spinner组件的内容array.xml文件】
(此文件放在res——values文件夹下)<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="publisher"><item>人民邮电出版社</item><item>科学出版社</item><item>高等教育出版社</item><item>清华大学出版社</item><item>其他</item></string-array></resources>
【MainActivity.java文件】import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TableRow;
import android.widget.RadioGroup.OnCheckedChangeListener;public class MainActivity extends Activity {EditText et_bookname,et_prize;String str_bookname,str_prize;RadioGroup rg_version;String str_version;TableRow row1,row2;String str_category;Spinner sp;String str_publisher;Button bt_submit,bt_reset,bt_show;ListView lv;ArrayList<String> List_allmess;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_bookname=(EditText) findViewById(R.id.ED_name);et_prize=(EditText) findViewById(R.id.ED_prize);row1=(TableRow) findViewById(R.id.CB_TR);row2=(TableRow) findViewById(R.id.CB_TR2);sp=(Spinner) findViewById(R.id.spinner);bt_submit=(Button) findViewById(R.id.submit_BT);bt_reset=(Button) findViewById(R.id.reset_BT);bt_show=(Button) findViewById(R.id.show_BT);lv=(ListView) findViewById(R.id.listview);List_allmess=new ArrayList<String>();rg_version=(RadioGroup) findViewById(R.id.RadioGroup1);rg_version.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {// TODO Auto-generated method stubRadioButton r;if(checkedId!=-1){r = (RadioButton) findViewById(checkedId);str_version=r.getText().toString();}else{str_version="";}}});  }public void register(View view){str_category="";for(int i=0;i<row1.getChildCount();i++){CheckBox c = (CheckBox) row1.getChildAt(i);if(c.isChecked()){str_category+=c.getText().toString()+" ";}}for(int i=0;i<row2.getChildCount();i++){CheckBox c = (CheckBox) row2.getChildAt(i);if(c.isChecked()){str_category+=c.getText().toString()+" ";}}str_bookname=et_bookname.getText().toString();str_prize=et_prize.getText().toString();str_publisher=sp.getSelectedItem().toString();List_allmess.add(str_bookname+" "+str_prize+" "+str_version+" "+str_category+" "+str_publisher);}public void reset(View view){et_bookname.setText("");et_prize.setText("");sp.setSelection(0);rg_version.clearCheck();for(int i=0;i<row1.getChildCount();i++){CheckBox c = (CheckBox) row1.getChildAt(i);c.setChecked(false);}for(int i=0;i<row2.getChildCount();i++){CheckBox c = (CheckBox) row2.getChildAt(i);c.setChecked(false);}}public void show(View view){ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,//  android.R.layout.simple_list_item_1,R.layout.adapter,List_allmess);lv.setAdapter(adapter);}@Overridepublic 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;}
}

3.类似应用市场的界面和功能

创建一个Android项目,使用ListView控件将应用程序图标及名称进行显示,实现类似应用市场的功能,具体显示效果参照课件【例4】,图标和应用程序名称可自行设定。

【提示】首先需要在res文件夹下的drawable文件夹里存放几张图片
直接在eclipse中粘贴到drawable文件夹下即可(其他编译器同理)
图片不宜过大,几百KB为宜
根据分辨率不同drawable有好几个文件夹
由于我们不考虑不同分辨率场景下的情况
将图片放在任何一个drawable文件夹下即可
【文字描述】在布局文件中添加一个listview,设置id大小等属性。
创建一个List的布局文件,设置布局格式。
在Java代码中,通过List<Map<String,Object>>存入图片,设置SimpleAdapter
【布局activity_main.xml文件】<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="wrap_content" ></ListView></RelativeLayout>
【布局list_item.xml适配器文件】
(此文件与布局activity_main.xml文件放在一起)<?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="horizontal" ><ImageViewandroid:id="@+id/iv_image"android:layout_width="150px"android:layout_height="150px"android:src="@drawable/ic_launcher" /><TextViewandroid:id="@+id/tv_name"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center"android:text=""android:textSize="20sp" /></LinearLayout>
【strings.xml文件】
(此文件在res——values文件夹下)<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">shiyan0503_专业班级_xxx</string><string name="action_settings">Settings</string><string name="hello_world">Hello world!</string></resources>
【MainActivity.java文件】import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;public class MainActivity extends Activity {ListView lv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String names[]={"石家庄站","河北工业大学","自然公园","C1教学楼","麻辣烫"};int image[]={R.drawable.img_1,R.drawable.img_2,R.drawable.img_3,R.drawable.img_4,R.drawable.img_5,};lv=(ListView) findViewById(R.id.listview);List<Map<String,Object>> listitem=new ArrayList<Map<String,Object>>();for(int i=0;i<names.length;i++){Map<String,Object> item = new HashMap<String,Object>();item.put("picname",names[i]);item.put("picid",image[i]);listitem.add(item);}SimpleAdapter sad = new SimpleAdapter(MainActivity.this,listitem, R.layout.list_item,new String[]{"picname","picid"},new int[]{R.id.tv_name,R.id.iv_image});lv.setAdapter(sad);lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, arg0.getItemAtPosition(arg2).toString(), 0).show();}});}@Overridepublic 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;}
}

4.GridView控件

【提示】首先需要在res文件夹下的drawable文件夹里存放几张图片
直接在eclipse中粘贴到drawable文件夹下即可(其他编译器同理)
图片不宜过大,几百KB为宜
根据分辨率不同drawable有好几个文件夹
由于我们不考虑不同分辨率场景下的情况
将图片放在任何一个drawable文件夹下即可
【文字描述】首先在activity_main.xml文件中添加一个GridView,并设置id、列数、大小属性。
之后在layout文件夹中添加一个gridview_item.xml文件,
在里面添加ImageView和TextView并设置id、列数、大小属性。
在MainActivity文件中首先获取到Gridview,定义字符串数组和整型数组,
分别保存字符串和图片id。
使用List<Map<String,Object>>通过for循环将图片添加入一个List中,
最后设置适配器。
【布局activity_main.xml文件】<RelativeLayout <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><GridViewandroid:id="@+id/GV"android:layout_width="match_parent"android:layout_height="match_parent"android:numColumns="3" ></GridView></RelativeLayout>
【布局gridview_item.xml适配器文件】
(此文件与布局activity_main.xml文件放在一起)<?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" ><ImageViewandroid:id="@+id/image_view"android:layout_width="100px"android:layout_height="100px"android:layout_gravity="center" /><TextViewandroid:id="@+id/text_view"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center" /></LinearLayout>
【strings.xml文件】
(此文件在res——values文件夹下)<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">shiyan0504_专业班级_xxx</string><string name="action_settings">Settings</string><string name="hello_world">Hello world!</string></resources>
【MainActivity.java文件】import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.GridView;
import android.widget.SimpleAdapter;public class MainActivity extends Activity {GridView lv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String names[]={"石家庄站","河北工业大学","自然公园","C1教学楼","麻辣烫"};int image[]={R.drawable.img_1,R.drawable.img_2,R.drawable.img_3,R.drawable.img_4,R.drawable.img_5};lv=(GridView) findViewById(R.id.GV);List<Map<String,Object>> listitem=new ArrayList<Map<String,Object>>();for(int i=0;i<names.length;i++){Map<String,Object> item = new HashMap<String,Object>();item.put("picname",names[i]);item.put("picid",image[i]);listitem.add(item);}SimpleAdapter sad = new SimpleAdapter(MainActivity.this,listitem, R.layout.gridview_item,new String[]{"picname","picid"},new int[]{R.id.text_view,R.id.image_view});lv.setAdapter(sad);}@Overridepublic 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;}
}

移动开发技术(Android)——实验5 Android高级控件的应用相关推荐

  1. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第八章:高级控件

    本章介绍了App开发常用的一些高级控件用法,主要包括:如何使用下拉框及其适配器.如何使用列表 类视图及其适配器.如何使用翻页类视图及其适配器.如何使用碎片及其适配器等.然后结合本章所学 的知识,演示了 ...

  2. 《移动项目实践》实验报告——Android高级控件

    实验目的 1.熟悉App开发常用的一些高级控件及相关工具,主要包括日期时间控件的用法.列表类视图及其适配器的用法.翻页类视图及其适配器的用法.碎片及其适配器的用法等: 2.熟悉四大组件之一广播Broa ...

  3. RecyclerView高级控件-附实例【android专题】

    RecyclerView高级控件 RecyclerView是Android 及其重要的一个高级UI控件,使用频率及其的高,APP的90%以上的页面都会使用的到.由于其出色的性能和插拔式的架构设计,被全 ...

  4. Android从入门到进阶之高级控件

    高级控件 1.自动完成文本控件 在搜索引擎(百度.搜狗)输入几个文字,会出来一些提示.可以减少用户的输入,提高程序的效率.刚才看到的自动提示,ajax技术. 1.1AotoCompleteTextVi ...

  5. Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现...

    Android高级控件(二)--SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现 写这个的原因呢,也是因为项目中用到了gif动画,虽然网上有很多的架包可以实现,不过我们还 ...

  6. Android高级控件----AdapterView与Adapter详解

    在J2EE中提供过一种非常好的框架--MVC框架,实现原理:数据模型M(Model)存放数据,利用控制器C(Controller)将数据显示在视图V(View)上.在Android中有这样一种高级控件 ...

  7. Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能

    Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...

  8. Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷

    Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...

  9. Android 高级控件(七)——RecyclerView的方方面面

    Android 高级控件(七)--RecyclerView的方方面面 RecyclerView出来很长时间了,相信大家都已经比较了解了,这里我把知识梳理一下,其实你把他看成一个升级版的ListView ...

最新文章

  1. Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS
  2. CSS3制作文字背景图
  3. Linux性能监测(系统监测统计命令详解)
  4. 读取数据库并写入excel表中 发送邮件
  5. 深度学习2.0-18.随机梯度下降之手写数字问题实战(层)
  6. 阿里业务研发经典案例:另类解法,分布式一致性
  7. MBR分析(1): 代码获取与初始化
  8. 如何通俗理解泊松分布?
  9. 代码:灰度重心法求激光中心线(matlab)
  10. 你走后 爱情的遗址像是空城
  11. 英文和中文在计算机的优劣,汉语和英语优缺点的比较(转载)
  12. 组合体视图的画图步骤_组合体三视图的画法
  13. js【详解】arr.sort()数组排序(内含十大经典排序算法的js实现)
  14. 关于别名(alias)的尴尬
  15. 3dmax骨骼的绑定
  16. EasyClick 易点云测 IOS版自动化测试工具
  17. windows 账户SAM文件损坏的解决办法
  18. 文本挖掘的量化投资应用大起底!
  19. python数据分析实例2012美国总统竞选赞助分析
  20. dokuwiki使用教程--创建页面和命名空间

热门文章

  1. html5文字横向变纵向,使用writing-mode让文字竖向排版
  2. C#成魔之路16 C#新技术
  3. 虚拟机此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
  4. Postgres-XL介绍
  5. R语言书籍的学习路线图(转自格物堂)
  6. 构建网络游戏运营支撑系统
  7. 什么是分布式?什么是系统单例模式/集群模式?
  8. ubuntu使用bash命令开启多个终端子程序
  9. 科技云报道:大模型时代,AI基础软件机会何在?
  10. 支付宝沙箱模拟支付,退款等