AutoCompleteListView
public class MainActivity extends AppCompatActivity {
private AutoCompleteTextView autoCompleteTextView;
private ArrayAdapter<String>arrayAdapter;
private String[]mData={"layout_linear","layout_frame","layout_relative","layout_grid","view_text","view_img"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
autoCompleteTextView= (AutoCompleteTextView) findViewById(R.id.autocompletetext);
arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mData);
autoCompleteTextView.setAdapter(arrayAdapter);
}
}
<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/autocompletetext"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
Spinner
public class MainActivity extends AppCompatActivity {
private Spinner spinner;
private ArrayAdapter<String> arrayAdapter;
private String[] mData = {"layout_linear", "layout_frame", "layout_relative", "layout_grid", "view_text", "view_img"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner) findViewById(R.id.spinner);
arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mData);
spinner.setAdapter(arrayAdapter);
}
<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>
GridView
GridView就是可以分几列的Listview,代码和ListView基本一样,只有布局改为GridView
Gallery
ExpandableListView
(有点丑啊,待改进)
java源码
MainActivity
public class MainActivity extends AppCompatActivity {
private ExpandableListView mExpandableListView;
private List<Clazz> clazz;
private LayoutInflater layoutInflater;
private MyExpandableAdapter myExpandableAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mExpandableListView = (ExpandableListView) findViewById(R.id.expandablelistview);
initData();
layoutInflater=getLayoutInflater();
myExpandableAdapter=new MyExpandableAdapter(layoutInflater,clazz);
mExpandableListView.setAdapter(myExpandableAdapter);
}
private void initData() {
clazz = new ArrayList<>();
Clazz clazz1 = new Clazz("1班", "201501");
List<Student> student1 = new ArrayList();
student1.add(new Student("baby", "20", "女"));
student1.add(new Student("Davi", "19", "男"));
student1.add(new Student("Jack", "19", "男"));
student1.add(new Student("Jodan", "22", "男"));
clazz1.setStudent(student1);
Clazz clazz2 = new Clazz("2班", "201502");
List<Student> student2 = new ArrayList();
student2.add(new Student("baby", "20", "女"));
student2.add(new Student("Davi", "19", "男"));
student2.add(new Student("Jack", "19", "男"));
student2.add(new Student("Jodan", "22", "男"));
clazz2.setStudent(student2);
Clazz clazz3 = new Clazz("3班", "201503");
List<Student> student3 = new ArrayList();
student3.add(new Student("baby", "20", "女"));
student3.add(new Student("Davi", "19", "男"));
student3.add(new Student("Jack", "19", "男"));
student3.add(new Student("Jodan", "22", "男"));
clazz3.setStudent(student3);
Clazz clazz4 = new Clazz("4班", "201504");
List<Student> student4 = new ArrayList();
student4.add(new Student("baby", "20", "女"));
student4.add(new Student("Davi", "19", "男"));
student4.add(new Student("Jack", "19", "男"));
student4.add(new Student("Jodan", "22", "男"));
clazz4.setStudent(student4);
clazz.add(clazz1);
clazz.add(clazz2);
clazz.add(clazz3);
clazz.add(clazz4);
}
}
MyExpandableAdapter
public class MyExpandableAdapter extends BaseExpandableListAdapter {
private LayoutInflater layoutInflater;
private List<Clazz>mClazzs;
public MyExpandableAdapter(LayoutInflater layoutInflater, List<Clazz> mClazzs) {
this.layoutInflater = layoutInflater;
this.mClazzs = mClazzs;
}
@Override
public int getGroupCount() {
return mClazzs.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return mClazzs.get(groupPosition).getStudent().size();
}
@Override
public Object getGroup(int groupPosition) {
return groupPosition;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return mClazzs.get(groupPosition).getStudent();
}
@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=layoutInflater.inflate(R.layout.item_clazz,null);
TextView textViewClassname= (TextView) convertView.findViewById(R.id.textview_clazz);
TextView textViewClassNum= (TextView) convertView.findViewById(R.id.textview_clazz_num);
TextView textViewClassStudent= (TextView) convertView.findViewById(R.id.textview_class_student);
Clazz clazz=mClazzs.get(groupPosition);
textViewClassname.setText(clazz.getClazzName());
textViewClassNum.setText(clazz.getClazzNum());
textViewClassStudent.setText(""+clazz.getStudent().size());
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
convertView=layoutInflater.inflate(R.layout.item_student,null);
TextView textViewStudentsName= (TextView) convertView.findViewById(R.id.textview_student_name);
TextView textViewStudentsAge= (TextView) convertView.findViewById(R.id.textview_student_age);
TextView textViewStudentSex= (TextView) convertView.findViewById(R.id.textview_student_sex);
//错过
Student student= mClazzs.get(groupPosition).getStudent().get(childPosition);
textViewStudentsName.setText(student.getName());
textViewStudentsAge.setText(student.getAge());
textViewStudentSex.setText(student.getSex());
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
}
Student
public class Student {
private String name;
private String age;
private String sex;
public Student(String name, String age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
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 class Clazz {
private String clazzName;
private String clazzNum;
private List <Student>student;
public Clazz(String clazzName, String clazzNum) {
this.clazzName = clazzName;
this.clazzNum = clazzNum;
}
public List<Student> getStudent() {
return student;
}
public void setStudent(List<Student> student) {
this.student = student;
}
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;
}
}
xml源码
两级界面外加expandablelistview
<ExpandableListView
android:id="@+id/expandablelistview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:childDivider="@color/black"
android:groupIndicator="@mipmap/ic_launcher"
android:childIndicator="@mipmap/baby"></ExpandableListView>
***************************************************
另两个比较简单不在给出