GridView、AutoTextView、Spinner、Gallery、ExpandableListView
来源:互联网 发布:文悦古体仿宋 mac 编辑:程序博客网 时间:2024/05/19 00:54
- GridView的案例
- MainActivity
- MyGridAdapter
- activity_mainxml
- item_girdxml
- 运行图
- AutoTextView案例
- MainActivity
- activity_mainxml
- 运行图
- Spinner案例
- MainActivity
- activity_mainxml
- 运行图
- Gallery案例
- MainActivity
- MyGalleryAdapter
- Fruit类
- item_galleryxml
- activity_mainxml
- 运行图
- ExpandableListView案例
- MainActivity
- Clazz类
- Student类
- MyExpandableAdapter
- activity_mainxml
- item_clazzxml
- item_studentxml
- 运行图
- 总结
- GridView的案例
GridView的案例
MainActivity
public class MainActivity extends AppCompatActivity {private GridView mGridView; private LayoutInflater mInflater; private List<Fruit> mFruits; private MyGirdAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGridView= (GridView) findViewById(R.id.gridview); mInflater=getLayoutInflater();//mInflater有多种获取方式 mFruits=new ArrayList<>(); mAdapter=new MyGirdAdapter(mInflater,mFruits); mGridView.setAdapter(mAdapter); for(int i=0;i<10;i++) { Fruit apple = new Fruit("菠萝", R.mipmap.pineapple); Fruit peach = new Fruit("桃子", R.mipmap.peach); Fruit banana = new Fruit("香蕉", R.mipmap.fbanana); Fruit strawberry = new Fruit("草莓", R.mipmap.fstrawberry); mFruits.add(apple); mFruits.add(banana); mFruits.add(strawberry); mFruits.add(peach); } }
MyGridAdapter
public class MyGriAdapter extends BaseAdapter { private List<Fruit> mFruits; private LayoutInflater mInflater; public MyGirdAdapter( LayoutInflater Inflater,List<Fruit> Fruits) { mFruits = Fruits; mInflater = Inflater; } @Override public int getCount() { return mFruits.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) { ViewHolder viewHolder=null; if(convertView==null){ convertView=mInflater.inflate(R.layout.item_gird,null); viewHolder=new ViewHolder(); viewHolder.textView= (TextView) convertView.findViewById(R.id.textview); viewHolder.imageView= (ImageView) convertView.findViewById(R.id.imageview); convertView.setTag(viewHolder); }else{ viewHolder= (ViewHolder) convertView.getTag(); } Fruit fruit=mFruits.get(position); viewHolder.textView.setText(fruit.getName()); viewHolder.imageView.setImageResource(fruit.getImg()); return convertView; } class ViewHolder{ TextView textView; ImageView imageView; }}
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"><GridView android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="3"></GridView></RelativeLayout>
item_gird.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"><TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/imageview" android:layout_width="100dp" android:layout_height="100dp" android:src="@mipmap/pineapple"/></LinearLayout>
运行图
>
AutoTextView案例
MainActivity
public class MainActivity extends AppCompatActivity { private AutoCompleteTextView mAutoTextView; private ArrayAdapter<String> mAdapter; private String [] mData={"layout_linear","layout_relative","layout_frame","view_text","view_image","view_button","editView","peach","pineapple"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAutoTextView= (AutoCompleteTextView) findViewById(R.id.auto_textview); mAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mData); mAutoTextView.setAdapter(mAdapter); }
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <AutoCompleteTextView android:id="@+id/auto_textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="search"/></RelativeLayout>
运行图
Spinner案例
MainActivity
public class MainActivity extends AppCompatActivity {private Spinner mSpinner; private ArrayAdapter<String > mAdapter; private String [] mData={"layout_linear","layout_relative","layout_frame","view_text","view_image","view_button","editView","peach","pineapple"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSpinner= (Spinner) findViewById(R.id.spinner); mAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,mData); mSpinner.setAdapter(mAdapter); }
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content"> </Spinner></RelativeLayout>
运行图
Gallery案例
MainActivity
public class MainActivity extends AppCompatActivity { private Gallery mGallery; private LayoutInflater mInflater; private List<Fruit> mFruits; private MyGalleryAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGallery= (Gallery) findViewById(R.id.gallery); mInflater=getLayoutInflater();//mInflater有多种获取方式 mFruits=new ArrayList<>(); for(int i=0;i<10;i++) { Fruit apple = new Fruit("菠萝", R.mipmap.pineapple); Fruit peach = new Fruit("桃子", R.mipmap.peach); Fruit banana = new Fruit("香蕉", R.mipmap.fbanana); Fruit strawberry = new Fruit("草莓", R.mipmap.fstrawberry); mFruits.add(apple); mFruits.add(banana); mFruits.add(strawberry); mFruits.add(peach); } mAdapter=new MyGalleryAdapter(mInflater,mFruits); mGallery.setAdapter(mAdapter); mGallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Log.d("mygallery","onItemSelected"+mFruits.get(position).getName());//得到居中位置上的图片的名称 } @Override public void onNothingSelected(AdapterView<?> parent) { } }); }
MyGalleryAdapter
public class MyGalleryAdapter extends BaseAdapter { private List<Fruit> mFruits; private LayoutInflater mInflater; public MyGalleryAdapter(LayoutInflater mFruits, List<Fruit> mInflater) { this.mFruits = mFruits; this.mInflater = mInflater; } @Override public int getCount() { return mFruits.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) { ViewHolder viewHolder=null; if(convertView==null){ convertView=mInflater.inflate(R.layout.item_gird,null); viewHolder=new ViewHolder(); viewHolder.textView= (TextView) convertView.findViewById(R.id.textview); viewHolder.imageView= (ImageView) convertView.findViewById(R.id.imageview); convertView.setTag(viewHolder); }else{ viewHolder= (ViewHolder) convertView.getTag(); } Fruit fruit=mFruits.get(position); viewHolder.textView.setText(fruit.getName()); viewHolder.imageView.setImageResource(fruit.getImg()); return convertView; } class ViewHolder{ TextView textView; ImageView imageView; }}
Fruit类
public class Fruit { private String name; private int img; public Fruit(String name, int img) { this.name = name; this.img = img; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getImg() { return img; } public void setImg(int img) { this.img = img; }}
item_gallery.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"> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/imageview" android:layout_width="100dp" android:layout_height="100dp" android:src="@mipmap/pineapple"/></LinearLayout>
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"><Gallery android:id="@+id/gallery" android:layout_width="match_parent" android:layout_height="wrap_content" android:spacing="50dp" android:unselectedAlpha="0.5"></Gallery></RelativeLayout>
运行图
ExpandableListView案例
MainActivity
public class MainActivity extends AppCompatActivity {private ExpandableListView mEListView; private List<Clazz> mClazzs;private MyExpandableAdapter mAdapter; private LayoutInflater mInflater; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEListView= (ExpandableListView) findViewById(R.id.expandlistview); initData(); mInflater=getLayoutInflater(); mAdapter=new MyExpandableAdapter(mClazzs,mInflater); mEListView.setAdapter(mAdapter); } private void initData() { mClazzs=new ArrayList<>(); Clazz clazz1=new Clazz("一班","201501"); List<Student> student1=new ArrayList<>(); student1.add(new Student("张三","18","男")); student1.add(new Student("李四","17","男")); student1.add(new Student("王五","19","女")); student1.add(new Student("赵六", "20", "男")); student1.add(new Student("李悦","23","女")); student1.add(new Student("曹林林","20","女")); student1.add(new Student("张方舟","8","女")); clazz1.setStudents(student1); Clazz clazz2=new Clazz("二班","201502"); List<Student> student2=new ArrayList<>(); student2.add(new Student("张三","18","男")); student2.add(new Student("李四","17","男")); student2.add(new Student("王五","19","女")); student2.add(new Student("赵六","20","男")); clazz2.setStudents(student2); Clazz clazz3=new Clazz("三班","201503"); List<Student> student3=new ArrayList<>(); student3.add(new Student("张三","18","男")); student3.add(new Student("李四","17","男")); student3.add(new Student("王五","19","女")); student3.add(new Student("赵六","20","男")); student3.add(new Student("杜蛋蛋","5","男")); student3.add(new Student("曹晓晓","21","女")); clazz3.setStudents(student3); mClazzs.add(clazz1); mClazzs.add(clazz2); mClazzs.add(clazz3); }
Clazz类
public class Clazz { private String clazzName; private String clazzNum; private List<Student> students; public String getClazzName() { return clazzName; } public void setClazzName(String clazzName) { this.clazzName = clazzName; } public Clazz(String clazzName, String clazzNum) { this.clazzName = clazzName; this.clazzNum = clazzNum; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } public String getClazzNum() { return clazzNum; } public void setClazzNum(String clazzNum) { this.clazzNum = clazzNum; }}
Student类
public class Student { private String studentName; private String age; private String sex; private String lable; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getLable() { return lable; } public void setLable(String lable) { this.lable = lable; } public Student(String studentName, String age, String sex) { this.studentName = studentName; this.age = age; this.sex = sex; }}
MyExpandableAdapter
public class MyExpandableAdapter extends BaseExpandableListAdapter { private List<Clazz> mClazzs; private LayoutInflater mInflater; public MyExpandableAdapter(List<Clazz> mClazzs, LayoutInflater mInflater) { this.mClazzs = mClazzs; this.mInflater = mInflater; } @Override public int getGroupCount() { return mClazzs.size(); } @Override public int getChildrenCount(int groupPosition) { return mClazzs.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) { convertView = mInflater.inflate(R.layout.item_clazz, null); TextView textviewClazzName = (TextView) convertView.findViewById(R.id.textview_clazz_name); TextView textviewClazzNum = (TextView) convertView.findViewById(R.id.textview_clazz_num); TextView textviewClazzStudents = (TextView) convertView.findViewById(R.id.textview_clazz_students); Clazz clazz = mClazzs.get(groupPosition); textviewClazzName.setText(clazz.getClazzName()); textviewClazzNum.setText(clazz.getClazzNum()); textviewClazzStudents.setText("总人数:" + clazz.getStudents().size()); return convertView; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { convertView = mInflater.inflate(R.layout.item_student, null); TextView textviewStudentName = (TextView) convertView.findViewById(R.id.textview_student_name); TextView textviewStudentAge = (TextView) convertView.findViewById(R.id.textview_student_age); TextView textviewStudentSex = (TextView) convertView.findViewById(R.id.textview_student_sex); Clazz clazz = mClazzs.get(groupPosition); List<Student> students = clazz.getStudents(); Student student = students.get(childPosition); textviewStudentName.setText(student.getStudentName()); textviewStudentAge.setText(student.getAge()); textviewStudentSex.setText(student.getSex()); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; }}
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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <ExpandableListView android:id="@+id/expandlistview" android:layout_width="match_parent" android:layout_height="match_parent"> </ExpandableListView></RelativeLayout>
item_clazz.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center_vertical" android:background="@drawable/back" ><TextView android:id="@+id/textview_clazz_name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/textview_clazz_num" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/textview_clazz_students" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
item_student.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"><TextView android:id="@+id/textview_student_name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/textview_student_sex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp"/> <TextView android:id="@+id/textview_student_age" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
运行图
总结
1、先建立Activity,用setContentView()加载布局。
2、在XML文件中添加GridView布局(或者是AutoTextView、Spinner、Gallery等布局)。
3、用findViewById找到GridView布局的id号。
4、GridView布局显示数据的时候,必须设置adapter设置adapter
继承BaseAdapter
实现四个方法(有些布局不止四个方法,比如ExpandableListView)
getView()方法
写内部类ViewHolder
5、初始化数据
6初始化Adapter
7、调用GridView的setAdapter()。
0 0
- GridView、AutoTextView、Spinner、Gallery、ExpandableListView
- GridView,AutoCompleteTextView,Spinner,Gallery,ExpandableListView
- GridView AutoCompleteTextView Spinner Gallery ExpandableListView
- GridView Gallery Spinner AutoCompleteTextView和ExpandableListView
- 8/26/GridView/AutoCompleteTextView/Gallery/Spinner/ExpandableListView
- 08-26 Spinner、AutoCompleteTextView、GridView、Gallery、ExpandableListView
- Android学习0826<八>(GridView、Spinner、AutoCompleteTextView、Gallery、ExpandableListView)
- 0826Android基础Gallery+GridView+Spinner+AutoCompleteTextView+ExpandableListView
- AutoCompleteListView,Spinner,Gallery,GridView,ExpandableListView(界面颜值逆天)
- GridView,AutoCompleteTextView,Spinner,Gallery,
- 第3组UI(2)-AdapterView之GridView、AutoCompleteTextView、Spinner、Gallery和ExpandableListView
- GridView,ExpandableListView,AutoCompleteTextView和Spinner
- Android第四讲——常用的基本控件(二)ListView、GridView、Spinner、AutoCompleteListView、Gallery、ExpandableListView
- day4.07总结_ListView和ExpandableListView和GridView和Spinner
- AdapterView性能优化(ListView,GridView,Gallery,Spinner)
- AutoCompeteTextView,Spinner和Gallery
- Spinner与Gallery
- 用ExpandableListView+Dialog 仿Spinner
- 【解决】SSH项目问题(2)--java.lang.NoSuchMethodError: antlr.collections.AST.ge
- mysql数据库导出导入
- iOS遍历数组相同值元素到另一数组中同一对象的子数组
- BZOJ1055
- Linux rz和sz命令详解
- GridView、AutoTextView、Spinner、Gallery、ExpandableListView
- python多进程编程
- 使用loop设备挂载映像文件
- 二 TitleEditor.java学习笔记
- 自定义GridView
- [Android随笔]自定义View的事件分发机制
- cocos2dx 打包问题
- Octave 使用 plot 未响应
- svn: Error converting entry in directory ‘.’ to UTF-8