GridView Gallery Spinner AutoCompleteTextView和ExpandableListView
来源:互联网 发布:融资租赁 知乎 编辑:程序博客网 时间:2024/05/16 06:14
GridView
GridView 与ListView类似,是用来显示图片,用的是类似于九宫格的形式来显示的。
同样,GridView包括两个界面,一个是GridView的布局,另一个是GridView内部每个界面的布局。包括一个实体类,一个适配器,和一个Activity。
package com.example2.administrator.mygridviewapplication.adapter;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.example2.administrator.mygridviewapplication.R;import com.example2.administrator.mygridviewapplication.model.Student;import java.util.List;/** * Created by Administrator on 2015/8/26. */public class MyGridViewAdapter extends BaseAdapter { private LayoutInflater mInflater; public MyGridViewAdapter(List<Student> mStudent, LayoutInflater mInflater) { this.mStudent = mStudent; this.mInflater = mInflater; } private List<Student> mStudent; @Override public int getCount() { return mStudent.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { Student student=mStudent.get(position); ViewHolder viewHolder=null; if(convertView==null){ convertView=mInflater.inflate(R.layout.activity_gridview_inner,null); viewHolder=new ViewHolder(); viewHolder.textView= (TextView) convertView.findViewById(R.id.text_gridview); viewHolder.imageView= (ImageView) convertView.findViewById(R.id.image_gridview); convertView.setTag(viewHolder); }else { viewHolder= (ViewHolder) convertView.getTag(); } viewHolder.textView.setText(student.getName()); viewHolder.imageView.setImageResource(student.getImg()); return convertView; } class ViewHolder{ TextView textView; ImageView imageView; }}
这是GridView的适配器,用来将数据和界面布局想结合
在Activity中主要进行GridView的主界面的初始化,LayoutInflater的声明初始化,然后初始化数据,将数据和Layout和数据在合适的适配器的作用下进行整合加入到GridView中。就完成了。重要的参考ListView相关内容。
Gallery
Gallery组件主要用于横向显示图像列表,与GridView和ListView一样,唯一不同的就是Gallery中只用到了一个Layout,所有图片内容都在横向图像列表中显示,而不需要吧某些布局加入到一个已制定好的View中。
Spinner
Spinner表示的是带有下拉菜单的一个控件
package com.example2.administrator.mygridviewapplication;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.Spinner;/** * Created by Administrator on 2015/8/26. */public class SpinnerActivity extends Activity { private Spinner mSpinner; private String []mData={"李明","李刚","李博","view_button", "view_text","view_check","activity_main","activity_second","activity_third","view_check","activity_main","activity_second","activity_third"}; private ArrayAdapter<String >mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_spiner); mSpinner= (Spinner) findViewById(R.id.spinner); mAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,mData); mSpinner.setAdapter(mAdapter); }}
这里其实跟ListView和GridView类似,但是这里使用的不是自定义的适配器,而是安卓自带的简单的一个适配器,所以简单了许多,但是思想都一样。
AutoCompleteTextView
这是一个可以自动搜索匹配与输入内容想关联的数据
package com.example2.administrator.mygridviewapplication;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import static com.example2.administrator.mygridviewapplication.R.id.autocompleteview;/** * Created by Administrator on 2015/8/26. */public class AutoTextViewActivity extends Activity{ private AutoCompleteTextView mAutoTextView; private String []mData={"李明","李刚","李博","layout_line","layout_relitive","layout_absolute","view_button", "view_text","view_check","activity_main","activity_second","activity_third"};; private ArrayAdapter<String> mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_autotextview); mAutoTextView = (AutoCompleteTextView) findViewById(autocompleteview); mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mData); mAutoTextView.setAdapter(mAdapter); }}
跟Spinner相类似,用到的适配器也是安卓提供的ArrayAdapter。
ExpandableListView
这是一个相当于在ListView中添加了一个ListView的结果,即ListView中每个View还有自己的View
这里主要是改一下适配器即可,然后数据的初始化也要花一点心思
数据的初始化:
private void initClazz() { mClazzs=new ArrayList<>(); Clazz clazz1=new Clazz("1班","2015001"); List<Student> students1=new ArrayList<>(); students1.add(new Student("张三","201500101","男","20")); students1.add(new Student("李四","201500102","男","24")); students1.add(new Student("王五","201500103","nv","21")); students1.add(new Student("赵六","201500104","男","22")); clazz1.setStudents(students1); Clazz clazz2=new Clazz("2班","2015002"); List<Student> students2=new ArrayList<>(); students2.add(new Student("张三","201500201","男","20")); students2.add(new Student("李四","201500202","女","24")); students2.add(new Student("王五","201500203","女","21")); students2.add(new Student("赵六","201500204","男","22")); clazz2.setStudents(students2);
适配器
package com.example2.administrator.mygridviewapplication.adapter;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseExpandableListAdapter;import android.widget.TextView;import com.example2.administrator.mygridviewapplication.R;import com.example2.administrator.mygridviewapplication.model.Clazz;import com.example2.administrator.mygridviewapplication.model.Student;import java.util.List;/** * Created by Administrator on 2015/8/26. */public class MyExpandListViewAdapter extends BaseExpandableListAdapter { private List<Clazz> mClazz; private LayoutInflater mInflater; public MyExpandListViewAdapter(List<Clazz> mClazz, LayoutInflater mInflater) { this.mClazz = mClazz; this.mInflater = mInflater; } @Override public int getGroupCount() { return mClazz.size(); } @Override public int getChildrenCount(int groupPosition) { return mClazz.get(groupPosition).getStudents().size(); } @Override public Object getGroup(int groupPosition) { return groupPosition; } @Override public Object getChild(int groupPosition, int childPosition) { return childPosition; } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return false; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { Clazz clazz=mClazz.get(groupPosition); ViewHolder1 viewHolder1=null; if (convertView==null){ convertView=mInflater.inflate(R.layout.activity_expandlistview_clazz,null); viewHolder1=new ViewHolder1(); viewHolder1.textView_clazzname= (TextView) convertView.findViewById(R.id.text_clazz_clazzname); viewHolder1.textView_clazznum= (TextView) convertView.findViewById(R.id.text_clazz_clazznum); viewHolder1.textView_clazzstudentsize= (TextView) convertView.findViewById(R.id.text_clazz_clazzstudentsize); convertView.setTag(viewHolder1); }else{ viewHolder1= (ViewHolder1) convertView.getTag(); } viewHolder1.textView_clazzname.setText(clazz.getClazzName()); viewHolder1.textView_clazznum.setText(clazz.getClazzNum()); viewHolder1.textView_clazzstudentsize.setText(""+clazz.getStudents().size()); return convertView; } class ViewHolder1{ TextView textView_clazzname; TextView textView_clazznum; TextView textView_clazzstudentsize; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { Clazz clazz=mClazz.get(groupPosition); List<Student> students=clazz.getStudents(); Student student=students.get(childPosition); ViewHolder2 viewHolder2=null; if (convertView==null){ convertView=mInflater.inflate(R.layout.activity_expandlistview_student,null); viewHolder2=new ViewHolder2(); viewHolder2.textView_studentname= (TextView) convertView.findViewById(R.id.text_student_studentname); viewHolder2.textView_studentnum= (TextView) convertView.findViewById(R.id.text_student_studentnum); viewHolder2.textView_studentsex= (TextView) convertView.findViewById(R.id.text_student_studentsex); viewHolder2.textView_studentage= (TextView) convertView.findViewById(R.id.text_student_studentage); }else{ viewHolder2= (ViewHolder2) convertView.getTag(); } viewHolder2.textView_studentname.setText(student.getName()); viewHolder2.textView_studentnum.setText(student.getNum()); viewHolder2.textView_studentsex.setText(student.getSex()); viewHolder2.textView_studentage.setText(student.getAge()); return convertView; } class ViewHolder2{ TextView textView_studentname; TextView textView_studentnum; TextView textView_studentsex; TextView textView_studentage; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; }}
在这里只是对View和其下的子View都进行了操作。
这里介绍一下这几种控件的基本思想
super.onCreate(savedInstanceState);setContentView(R.layout.activity_expandlistview);mExListView= (ExpandableListView) findViewById(R.id.expandablelistview);//界面的初始化initClazz();//数据的初始化mInflater=getLayoutInflater();//创建Layout的构造器mAdapter=new MyExpandListViewAdapter(mClazzs,mInflater);//适配器的初始化,传入数据和布局两个参数mExListView.setAdapter(mAdapter);//将适配器添加到最终的界面上 }
- GridView Gallery Spinner AutoCompleteTextView和ExpandableListView
- GridView,AutoCompleteTextView,Spinner,Gallery,ExpandableListView
- GridView AutoCompleteTextView Spinner Gallery ExpandableListView
- 8/26/GridView/AutoCompleteTextView/Gallery/Spinner/ExpandableListView
- 08-26 Spinner、AutoCompleteTextView、GridView、Gallery、ExpandableListView
- GridView,ExpandableListView,AutoCompleteTextView和Spinner
- GridView,AutoCompleteTextView,Spinner,Gallery,
- Android学习0826<八>(GridView、Spinner、AutoCompleteTextView、Gallery、ExpandableListView)
- 0826Android基础Gallery+GridView+Spinner+AutoCompleteTextView+ExpandableListView
- 第3组UI(2)-AdapterView之GridView、AutoCompleteTextView、Spinner、Gallery和ExpandableListView
- GridView、AutoTextView、Spinner、Gallery、ExpandableListView
- AutoCompleteListView,Spinner,Gallery,GridView,ExpandableListView(界面颜值逆天)
- day4.07总结_ListView和ExpandableListView和GridView和Spinner
- Grid、Gallery、AutoCompleteTextView及Spinner(8.26)
- Spinner和AutoCompleteTextView
- AutoCompeteTextView,Spinner和Gallery
- Android第四讲——常用的基本控件(二)ListView、GridView、Spinner、AutoCompleteListView、Gallery、ExpandableListView
- 12、GridView及 ExpandableListView、AutoCompleteTextView、ToggleButton
- iOS Undefined symbols for architecture x86_64:
- OpenStack Neutron L3层高可靠
- 卡塔兰数的应用
- 五、红黑树算法的实现与剖析(续)
- Adb connection Error:远程主机强迫关闭了一个现有的连接
- GridView Gallery Spinner AutoCompleteTextView和ExpandableListView
- Swift 属性值监测
- 310实验室编译问题补充
- HashMap和HashTable区别
- 回顾:RPC远程过程调用协议
- 【Git分布式版本控制系统】Git安装与配置
- fsdff
- poj-2002
- leetcode:Basic Calculator II