GridView
可以实现多行多列,区别于ListView,
public class GridAdapter extends BaseAdapter {
private GridAdapter mGridAdapter;
private GridView mGridView;
private List<Fruit> mFruits;
private LayoutInflater mInflater;
public GridAdapter(List<Fruit> mFruits, LayoutInflater 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 viewGroup) {
ViewHolder vh = null;
if(convertView==null){
vh = new ViewHolder();
convertView = mInflater.inflate(R.layout.grid_test,null);
vh.imageView = (ImageView) convertView.findViewById(R.id.imageview);
vh.textView = (TextView) convertView.findViewById(R.id.textview);
convertView.setTag(vh);
}else{
vh = (ViewHolder) convertView.getTag();
}
Fruit fruit = mFruits.get(position);
vh.imageView.setImageResource(fruit.getImg());
vh.textView.setText(fruit.getName());
return convertView;
}
class ViewHolder{
ImageView imageView;
TextView textView;
}
}
public class GridActivity extends Activity {
private GridView mGridView;
private List<Fruit> mFruits;
private GridAdapter mGridAdapter;
private LayoutInflater mInflater;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid);
mGridView = (GridView) findViewById(R.id.gridview);
mInflater = getLayoutInflater();//多种写法
mFruits = new ArrayList<>();
for (int i=0;i<5;i++){
Fruit apple = new Fruit(R.mipmap.apple,"苹果");
Fruit banana = new Fruit(R.mipmap.banana,"香蕉");
Fruit grape = new Fruit(R.mipmap.grapes,"葡萄");
Fruit pine = new Fruit(R.mipmap.pineapple,"菠萝");
mFruits.add(apple);
mFruits.add(banana);
mFruits.add(grape);
mFruits.add(pine);
}
mGridAdapter = new GridAdapter(mFruits,mInflater);
mGridView.setAdapter(mGridAdapter);
mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
}
});
}
AutoCompleteTextView
自动完成文本框,(关键字查找)
public class AutoCompleteActivity extends Activity {
private AutoCompleteTextView mAutoText;
private ArrayAdapter<String> mAdapter;
private String[]mData = {"layout_linear","layout_frame","layout_relative","text_view","text_a","imageview","edittext","edit","auto"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auto_complete);
mAutoText = (AutoCompleteTextView) findViewById(R.id.auto_text_view);
mAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mData);
mAutoText.setAdapter(mAdapter);
}
Spinner
点击下拉或者收起
public class SpinnerActivity extends Activity {
private Spinner mSpinner;
private String[]mData = {"layout_linear","layout_frame","layout_relative","text_view","text_a","imageview","edittext","edit","auto"};
private ArrayAdapter<String> mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner);
mSpinner = (Spinner) findViewById(R.id.spinner);
mAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,mData);
mSpinner.setAdapter(mAdapter);
}
Gallery
画廊
ExpandableListView
类似于qq的好有列表,分组是一个view,点击后,分组内的内容是另一个view.
ExpandableAdapter的相关代码
package com.example.administrator.myexpandable.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
import com.example.administrator.myexpandable.R;
import com.example.administrator.myexpandable.model.Student;
import com.example.administrator.myexpandable.model.clazz;
import java.util.List;
/**
* Created by Administrator on 2015/8/26.
*/
public class ExpandableAdapter extends BaseExpandableListAdapter {
private List<clazz> mClazz;
private LayoutInflater mInflater;
public ExpandableAdapter(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) {
convertView = mInflater.inflate(R.layout.item_clazz,null);
TextView textViewClazzName = (TextView) convertView.findViewById(R.id.item_clazz_name);
TextView textViewClazzNum = (TextView) convertView.findViewById(R.id.item_clazz_num);
TextView textViewClazzStudents = (TextView) convertView.findViewById(R.id.item_clazz_students);
clazz clazz = mClazz.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.item_student_name);
TextView textViewStudentAge = (TextView) convertView.findViewById(R.id.item_student_age);
TextView textViewStudentSex = (TextView) convertView.findViewById(R.id.item_student_sex);
clazz clazz = mClazz.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 i, int i1) {
return false;
}
}
主活动
public class MainActivity extends Activity {
private ExpandableListView mEListview;
private List<clazz> clazzs;
private ExpandableAdapter mAdapter;
private LayoutInflater mInflater;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEListview = (ExpandableListView) findViewById(R.id.expandablelist);
initData();
mInflater = getLayoutInflater();
mAdapter = new ExpandableAdapter(clazzs,mInflater);
mEListview.setAdapter(mAdapter);
}
private void initData() {
clazzs = new ArrayList<>();
clazz clazz1 = new clazz("一班","201501");
List<Student> students1 = new ArrayList<>();
students1.add(new Student("张三","男","22"));
students1.add(new Student("李四","女","18"));
students1.add(new Student("王五","男","22"));
students1.add(new Student("赵六","女","20"));
students1.add(new Student("马七","男","19"));
clazz1.setStudents(students1);
clazz clazz2 = new clazz("二班","201502");
List<Student> students2 = new ArrayList<>();
students2.add(new Student("张三","男","22"));
students2.add(new Student("李四","女","18"));
students2.add(new Student("王五","男","22"));
students2.add(new Student("赵六","女","20"));
students2.add(new Student("赵六","女","20"));
clazz2.setStudents(students2);
clazzs.add(clazz1);
clazzs.add(clazz2);
}
数据班级
public class clazz {
private String clazzName;
private String clazzNum;
private List<Student> students;
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
public clazz(String clazzName, String clazzNum) {
this.clazzName = clazzName;
this.clazzNum = clazzNum;
}
public String getClazzName() {
return clazzName;
}
public void setClazzName(String clazzName) {
this.clazzName = clazzName;
}
public String getClazzNum() {
return clazzNum;
}
public void setClazzNum(String clazzNum) {
this.clazzNum = clazzNum;
}
}
学生
public class Student {
private String studentName;
private String age;
private String sex;
public Student(String studentName, String age, String sex) {
this.studentName = studentName;
this.age = age;
this.sex = sex;
}
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;
}
}
布局
<ExpandableListView
android:id="@+id/expandablelist"
android:layout_width="match_parent"
android:layout_height="match_parent"></ExpandableListView>