GridView AutoCompleteTextView Spinner Gallery ExpandableListView

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);
    }

画廊

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值