1604 week1 学习总结
来源:互联网 发布:抽风散热器 知乎 编辑:程序博客网 时间:2024/05/22 15:05
week 1 总结
1. Common Layout
1)RelativeLayout
layout_below 位于某控件之下
layout_toLeftOf / layout_toRightof 与某控件 左侧/右侧
layout_alignLeft / Top / Right / Bottom 与某控件 左/上/右/下
layout_alignBaseline 与某控基线对齐
layout_alignParentLeft 与父级对应向左
layout_alignParentTop 与父级对应向上
layout_alignParentRight 与父级对应向右
layout_alignParentBottom 与父级对应向下
layout_centerInparent 在父级居中
layout_centerHorizontal 水平居中
layout_centerVertical 垂直居中 ----- 取值 true false
2) LinearLayout
必须设置 orientation 属性: horizontal / vertical
layout_gravity :left / right / top / bottom / center_horinzontal /center_vertical / center
水平线性布局,垂直方向的对齐方式有效
垂直线性布局,水平方向的对齐方式有效
layout_weight 权重
3) FrameLayout
FrameLayout, 按层,顶层显示,底层隐藏
4) GridLayout
orientation 必要 horizontal / vertical
columnCount 最大列数
rowCount 最大行数
layout_column 位于第几列,取值为列的序号
layout_row 位于第几行,取值为行的序号
layout_columnSpan 合并几列,取值为合并的数量
layout_rowSpan 合并几行,取值为行的数量
layout_gravity 对齐方式 fill_vertical fill_horizontal 可行的情况下扩大该控件
2.switch
1)textswitcher
设置view工厂 :textSwitcher . setFactory()
设置view动画 : textSwitcher .setInAnimation ()
设置默认图片 : imageSwitch .setCurrentText(String.valueOf)
在xml里加on click, 在mainActivity 中 实现 public void onClick(View v){ textSwitcher.setText(String.valueOf()) }
继承 ViewFactory接口, 实现 makeView 抽象方法
2)imageswitcher
设置view工厂 : imageSwitch . setFactory()
设置view动画 : imageSwitch .setInAnimation ()
设置默认图片 : imageSwitch .setImageResource()
在xml里加on click, 在mainActivity 中 实现 public void onClick(View v){ textSwither.setImageResource(res[count]); }
继承 ViewFactory接口, 实现 makeView 抽象方法 ImageView tv=new ImageView(this); tv.setScaleType(ScaleType.CENTER);
3. Adapter Layout ---- ListView
步骤方式1:
1.获得ListView
ListView lsv=(ListView) findViewById(R.id.lsvId);
2.构建Adapter
ArrayAdapter<String> adapter= new ArrayAdapter<String>( 第一种构造方法
this, //context
android.R.layout.simple_list_item_1, //resource
new String[]{"北京","深圳","上海"});
3.ListView关联Adapter
lsv.setAdapter(adapter);
步骤方式2:
1.获得ListView
ListView lsv=(ListView) findViewById(R.id.lsvId);
2.构建Adapter
ArrayAdapter<String> adapter= new ArrayAdapter<String>( 第二种构造方法
this, //context
R.layout.list_item_02, //resource
R.id.text01, //textviewId
list);
3.ListView关联Adapter
lsv.setAdapter(adapter);
步骤方式3:
1.获得ListView
ListView lsv=(ListView) findViewById(R.id.lsvId);
2.构建Adapter
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource( 第三种构造方法
this, //Context
R.array.itemarray,//textArrayResId (res/values/strings.xml) 静态调用
android.R.layout.simple_list_item_1);//textViewResId
3.ListView关联Adapter
lsv.setAdapter(adapter);
itemarray 中是在 String xml 写明: 如下,
<string-array name="itemarray">
<item>我的行程</item>
<item>我的订单</item>
<item>我的设置</item>
<item>我的钱包</item>
</string-array>
4. SimpleAdapter :
1)先定义数组,将数组中的数据取出来给ListView显示
private Object [][]datas={
{R.drawable.png_01,"宝马"},
{R.drawable.png_02,"奔驰"}
2)定义集合
private List<Map<String,Object>> brands=
new ArrayList<Map<String,Object>>();
3)定义加载数据方法loadDatasFromNet(内涵循环)
private void loadDatasFromNet() {
for(int i=0;i<datas.length;i++){
Map<String,Object> map=new HashMap<String, Object>();
map.put("logo", datas[i][0]);
map.put("name", datas[i][1]);
brands.add(map);
}
}
4) onCreate内模拟加载器
loadDatasFromNet();
5)构建ListView
ListView lsv=new ListView(this);
6)构建适配器对象
SimpleAdapter adapter=
new SimpleAdapter(this,
brands, //data(List<? Map<String,?>>)
R.layout.list_item_02, //resource (item view 模板)
new String[]{"logo","name"}, //map中的key
new int[]{R.id.imageView1,R.id.textView1}); //resource中的viewId
7)关联适配器
lsv.setAdapter(adapter);
8)添加监听器()实现接口
lsv.setOnItemClickListener(this);
9)将listview添加到activity对应的window窗口
setContentView(lsv); //如果一开始注释了
10)实现接口,重写方法
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Map<?,?> map=(Map<?,?>) parent.getItemAtPosition(position);
Toast.makeText(this, map.get("name"). toString(),0).show();
}
}
5. BaseAdapter :
* 添加一个构造方法(仿照activity中对象构建)
* 完成前三个方法(参考ArrayAdapter)
创建 CityAdapter 类 继承 BaseAdapter
private Context context;
private int resource;
private List<City> citys;
1) 构造方法通常用于对属性初始化
public CityAdapter(Context context,int resource,List<City> citys) {
this.context=context;
this.resource=resource;
this.citys=citys;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
2) 此方法要返回数据集中数据的个数*/
public int getCount() {
return citys.size();
}
3) 返回数据集中指定位置的数据*/
public Object getItem(int position) {
return citys.get(position);
}
4) 一般返回item对象的位置*/
public long getItemId(int position) {
return position;
}
5)此方法用于构建item(包饺子)
*listview中每显示一个item就会调用一次此方法
public View getView(int position, View convertView, ViewGroup parent) {
Log.i("TAG", "getView");
1)item view (饺子皮对象)
mInflater对象参考resource模板构建的view对象返回值为resource模板中的根元素
View v=mInflater.inflate(resource, parent, false); // 构建一个View
2)item data (饺子馅)
City c=citys.get(position);
3)set item data to item view(包饺子,对号入座)
3.1)获得item view 中的具体view对象
ImageView logoIV= (ImageView) v.findViewById(R.id.imageView1);
TextView nameTV= (TextView) v.findViewById(R.id.textView1);
3.2)将city中的数据放到对应位置
logoIV.setImageURI(Uri.fromFile(new File(c.getLogo())));
nameTV.setText(c.getName());
return v; //包好的饺子
}
* 写个City类, Logo Name 属性, set get 方法, 构造方法
* MainActivity 部分
String cityStrs[][]={ //假设此数据来自网络
{"/mnt/sdcard/png_01.png","北京"},
{"/mnt/sdcard/png_02.png","上海"}
}; //DDMS/File浏览器/mnt/sdcard
//将网络中的数据封装到此集合
private List<City> citys=new ArrayList<City>();
private void loadDataFromNet(){
for(int i=0;i<cityStrs.length;i++){
City c=new City(cityStrs[i][0],cityStrs[i][1]);
citys.add(c);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
-加载数据
loadDataFromNet();
-获得ListView
ListView lsv=(ListView) findViewById(R.id.lstId);
-构建适配器对象
CityAdapter adapter= new CityAdapter(
this,
R.layout.list_item_02,
citys);
-关联适配器
lsv.setAdapter(adapter);
}
}
6. ExpandableListView :
1)获得ExpandableListView对象
ExpandableListView lsv=(ExpandableListView) findViewById(R.id.elsvId);
2)构建适配器对象
ExpandableListAdapter adapter=new ExpAdapter();
3)关联适配器对象
lsv.setAdapter(adapter);
4.sv.setOnChildClickListener(onChildClickListener);
-
private String[] groups={"A","B","C"}; -----此数组中存储的是具体分组
private String[][]childs={ -----此数组中存储每组中的具体数据
{"A1","A2"},
{"B1","B2","B3"},
{"C1","C2"}
};
5. 写此adapter相当于写了两个BaseAdapter的子类
class ExpAdapter extends BaseExpandableListAdapter{
@Override
public int getGroupCount() { ------ 此方法要返回分组的个数
return groups.length;
}
@Override
public int getChildrenCount(int groupPosition) { ------ 返回每个分组中子元素的个数
return childs[groupPosition].length;
}
@Override
public Object getGroup(int groupPosition) { ------- 此方法类似BaseAdapter的getItem方法,
要返回指定位置的item数据
return groups[groupPosition];
}
@Override
public Object getChild(int groupPosition, int childPosition) { ----- 此方法类似BaseAdapter的getItem方法,
要返回指定位置的childs的item数据
return childs[groupPosition][childPosition];
}
@Override
public long getGroupId(int groupPosition) { -------- 类似baseAdapter的getItemId方法
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public boolean hasStableIds() { --------- 此方法的返回值表示item的id是否是稳定的,
return false; 假如item的id值可能会变化它就是不稳定的,
返回值false表示不稳定
}
@Override /**类似baseAdapter的getView方法,用于包饺子(构建item对象)
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
//1.item view
TextView v=(TextView) View.inflate(MainActivity.this,
android.R.layout.simple_expandable_list_item_1,null);
//2.item data
String data=groups[groupPosition];
//3.set item data to item view
v.setText(data);
return v;
}
/**类似baseAdapter的getView方法,用于包饺子(构建item对象)*/
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
ViewGroup parent) {
//1.item view
TextView v=(TextView) View.inflate(MainActivity.this,
android.R.layout.simple_list_item_1,null);
//2.item data
String data=childs[groupPosition][childPosition];
//3.set item data to item view
v.setText(data);
return v;
}
/**此方法的返回值决定ExpandableListview中的子元素是否可以点击,
* 返回值false表示不可点击*/
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
7. Spinner :
private String groups[]={"北京","上海"}; ------ groups []
private String childs[][]={ ------ childs [] []
{"朝阳","海淀","西城"},
{"浦东","虹桥"}
};
private List<String> childList=new ArrayList<String>();
private Spinner groupSpinner;
private Spinner childSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//spinner01
setGroupSpinner();
//spinner02
setChildSpinner();
}
private void setGroupSpinner() {
1)获得Spinner对象
groupSpinner = (Spinner) findViewById(R.id.spinner1);
2)构建适配器对象
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,groups);
3)关联适配器对象
groupSpinner.setAdapter(adapter);
4)添加监听器
groupSpinner.setOnItemSelectedListener(this);
}
private ArrayAdapter<String> childAdapter;
private void setChildSpinner() {
childList.addAll(Arrays.asList(childs[0]));
1)获得Spinner对象
childSpinner = (Spinner) findViewById(R.id.spinner2);
2)构建适配器对象
childAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,childList);
3)关联适配器对象
childSpinner.setAdapter(childAdapter);
4)添加监听器
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
//修改Spinner中的数据
childList.clear();
childList.addAll(Arrays.asList(childs[position]));
//刷新Spinner02
childAdapter.notifyDataSetChanged();
1. Common Layout
1)RelativeLayout
layout_below 位于某控件之下
layout_toLeftOf / layout_toRightof 与某控件 左侧/右侧
layout_alignLeft / Top / Right / Bottom 与某控件 左/上/右/下
layout_alignBaseline 与某控基线对齐
layout_alignParentLeft 与父级对应向左
layout_alignParentTop 与父级对应向上
layout_alignParentRight 与父级对应向右
layout_alignParentBottom 与父级对应向下
layout_centerInparent 在父级居中
layout_centerHorizontal 水平居中
layout_centerVertical 垂直居中 ----- 取值 true false
2) LinearLayout
必须设置 orientation 属性: horizontal / vertical
layout_gravity :left / right / top / bottom / center_horinzontal /center_vertical / center
水平线性布局,垂直方向的对齐方式有效
垂直线性布局,水平方向的对齐方式有效
layout_weight 权重
3) FrameLayout
FrameLayout, 按层,顶层显示,底层隐藏
4) GridLayout
orientation 必要 horizontal / vertical
columnCount 最大列数
rowCount 最大行数
layout_column 位于第几列,取值为列的序号
layout_row 位于第几行,取值为行的序号
layout_columnSpan 合并几列,取值为合并的数量
layout_rowSpan 合并几行,取值为行的数量
layout_gravity 对齐方式 fill_vertical fill_horizontal 可行的情况下扩大该控件
2.switch
1)textswitcher
设置view工厂 :textSwitcher . setFactory()
设置view动画 : textSwitcher .setInAnimation ()
设置默认图片 : imageSwitch .setCurrentText(String.valueOf)
在xml里加on click, 在mainActivity 中 实现 public void onClick(View v){ textSwitcher.setText(String.valueOf()) }
继承 ViewFactory接口, 实现 makeView 抽象方法
2)imageswitcher
设置view工厂 : imageSwitch . setFactory()
设置view动画 : imageSwitch .setInAnimation ()
设置默认图片 : imageSwitch .setImageResource()
在xml里加on click, 在mainActivity 中 实现 public void onClick(View v){ textSwither.setImageResource(res[count]); }
继承 ViewFactory接口, 实现 makeView 抽象方法 ImageView tv=new ImageView(this); tv.setScaleType(ScaleType.CENTER);
3. Adapter Layout ---- ListView
步骤方式1:
1.获得ListView
ListView lsv=(ListView) findViewById(R.id.lsvId);
2.构建Adapter
ArrayAdapter<String> adapter= new ArrayAdapter<String>( 第一种构造方法
this, //context
android.R.layout.simple_list_item_1, //resource
new String[]{"北京","深圳","上海"});
3.ListView关联Adapter
lsv.setAdapter(adapter);
步骤方式2:
1.获得ListView
ListView lsv=(ListView) findViewById(R.id.lsvId);
2.构建Adapter
ArrayAdapter<String> adapter= new ArrayAdapter<String>( 第二种构造方法
this, //context
R.layout.list_item_02, //resource
R.id.text01, //textviewId
list);
3.ListView关联Adapter
lsv.setAdapter(adapter);
步骤方式3:
1.获得ListView
ListView lsv=(ListView) findViewById(R.id.lsvId);
2.构建Adapter
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource( 第三种构造方法
this, //Context
R.array.itemarray,//textArrayResId (res/values/strings.xml) 静态调用
android.R.layout.simple_list_item_1);//textViewResId
3.ListView关联Adapter
lsv.setAdapter(adapter);
itemarray 中是在 String xml 写明: 如下,
<string-array name="itemarray">
<item>我的行程</item>
<item>我的订单</item>
<item>我的设置</item>
<item>我的钱包</item>
</string-array>
4. SimpleAdapter :
1)先定义数组,将数组中的数据取出来给ListView显示
private Object [][]datas={
{R.drawable.png_01,"宝马"},
{R.drawable.png_02,"奔驰"}
2)定义集合
private List<Map<String,Object>> brands=
new ArrayList<Map<String,Object>>();
3)定义加载数据方法loadDatasFromNet(内涵循环)
private void loadDatasFromNet() {
for(int i=0;i<datas.length;i++){
Map<String,Object> map=new HashMap<String, Object>();
map.put("logo", datas[i][0]);
map.put("name", datas[i][1]);
brands.add(map);
}
}
4) onCreate内模拟加载器
loadDatasFromNet();
5)构建ListView
ListView lsv=new ListView(this);
6)构建适配器对象
SimpleAdapter adapter=
new SimpleAdapter(this,
brands, //data(List<? Map<String,?>>)
R.layout.list_item_02, //resource (item view 模板)
new String[]{"logo","name"}, //map中的key
new int[]{R.id.imageView1,R.id.textView1}); //resource中的viewId
7)关联适配器
lsv.setAdapter(adapter);
8)添加监听器()实现接口
lsv.setOnItemClickListener(this);
9)将listview添加到activity对应的window窗口
setContentView(lsv); //如果一开始注释了
10)实现接口,重写方法
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Map<?,?> map=(Map<?,?>) parent.getItemAtPosition(position);
Toast.makeText(this, map.get("name"). toString(),0).show();
}
}
5. BaseAdapter :
* 添加一个构造方法(仿照activity中对象构建)
* 完成前三个方法(参考ArrayAdapter)
创建 CityAdapter 类 继承 BaseAdapter
private Context context;
private int resource;
private List<City> citys;
1) 构造方法通常用于对属性初始化
public CityAdapter(Context context,int resource,List<City> citys) {
this.context=context;
this.resource=resource;
this.citys=citys;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
2) 此方法要返回数据集中数据的个数*/
public int getCount() {
return citys.size();
}
3) 返回数据集中指定位置的数据*/
public Object getItem(int position) {
return citys.get(position);
}
4) 一般返回item对象的位置*/
public long getItemId(int position) {
return position;
}
5)此方法用于构建item(包饺子)
*listview中每显示一个item就会调用一次此方法
public View getView(int position, View convertView, ViewGroup parent) {
Log.i("TAG", "getView");
1)item view (饺子皮对象)
mInflater对象参考resource模板构建的view对象返回值为resource模板中的根元素
View v=mInflater.inflate(resource, parent, false); // 构建一个View
2)item data (饺子馅)
City c=citys.get(position);
3)set item data to item view(包饺子,对号入座)
3.1)获得item view 中的具体view对象
ImageView logoIV= (ImageView) v.findViewById(R.id.imageView1);
TextView nameTV= (TextView) v.findViewById(R.id.textView1);
3.2)将city中的数据放到对应位置
logoIV.setImageURI(Uri.fromFile(new File(c.getLogo())));
nameTV.setText(c.getName());
return v; //包好的饺子
}
* 写个City类, Logo Name 属性, set get 方法, 构造方法
* MainActivity 部分
String cityStrs[][]={ //假设此数据来自网络
{"/mnt/sdcard/png_01.png","北京"},
{"/mnt/sdcard/png_02.png","上海"}
}; //DDMS/File浏览器/mnt/sdcard
//将网络中的数据封装到此集合
private List<City> citys=new ArrayList<City>();
private void loadDataFromNet(){
for(int i=0;i<cityStrs.length;i++){
City c=new City(cityStrs[i][0],cityStrs[i][1]);
citys.add(c);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
-加载数据
loadDataFromNet();
-获得ListView
ListView lsv=(ListView) findViewById(R.id.lstId);
-构建适配器对象
CityAdapter adapter= new CityAdapter(
this,
R.layout.list_item_02,
citys);
-关联适配器
lsv.setAdapter(adapter);
}
}
6. ExpandableListView :
1)获得ExpandableListView对象
ExpandableListView lsv=(ExpandableListView) findViewById(R.id.elsvId);
2)构建适配器对象
ExpandableListAdapter adapter=new ExpAdapter();
3)关联适配器对象
lsv.setAdapter(adapter);
4.sv.setOnChildClickListener(onChildClickListener);
-
private String[] groups={"A","B","C"}; -----此数组中存储的是具体分组
private String[][]childs={ -----此数组中存储每组中的具体数据
{"A1","A2"},
{"B1","B2","B3"},
{"C1","C2"}
};
5. 写此adapter相当于写了两个BaseAdapter的子类
class ExpAdapter extends BaseExpandableListAdapter{
@Override
public int getGroupCount() { ------ 此方法要返回分组的个数
return groups.length;
}
@Override
public int getChildrenCount(int groupPosition) { ------ 返回每个分组中子元素的个数
return childs[groupPosition].length;
}
@Override
public Object getGroup(int groupPosition) { ------- 此方法类似BaseAdapter的getItem方法,
要返回指定位置的item数据
return groups[groupPosition];
}
@Override
public Object getChild(int groupPosition, int childPosition) { ----- 此方法类似BaseAdapter的getItem方法,
要返回指定位置的childs的item数据
return childs[groupPosition][childPosition];
}
@Override
public long getGroupId(int groupPosition) { -------- 类似baseAdapter的getItemId方法
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public boolean hasStableIds() { --------- 此方法的返回值表示item的id是否是稳定的,
return false; 假如item的id值可能会变化它就是不稳定的,
返回值false表示不稳定
}
@Override /**类似baseAdapter的getView方法,用于包饺子(构建item对象)
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
//1.item view
TextView v=(TextView) View.inflate(MainActivity.this,
android.R.layout.simple_expandable_list_item_1,null);
//2.item data
String data=groups[groupPosition];
//3.set item data to item view
v.setText(data);
return v;
}
/**类似baseAdapter的getView方法,用于包饺子(构建item对象)*/
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
ViewGroup parent) {
//1.item view
TextView v=(TextView) View.inflate(MainActivity.this,
android.R.layout.simple_list_item_1,null);
//2.item data
String data=childs[groupPosition][childPosition];
//3.set item data to item view
v.setText(data);
return v;
}
/**此方法的返回值决定ExpandableListview中的子元素是否可以点击,
* 返回值false表示不可点击*/
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
7. Spinner :
private String groups[]={"北京","上海"}; ------ groups []
private String childs[][]={ ------ childs [] []
{"朝阳","海淀","西城"},
{"浦东","虹桥"}
};
private List<String> childList=new ArrayList<String>();
private Spinner groupSpinner;
private Spinner childSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//spinner01
setGroupSpinner();
//spinner02
setChildSpinner();
}
private void setGroupSpinner() {
1)获得Spinner对象
groupSpinner = (Spinner) findViewById(R.id.spinner1);
2)构建适配器对象
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,groups);
3)关联适配器对象
groupSpinner.setAdapter(adapter);
4)添加监听器
groupSpinner.setOnItemSelectedListener(this);
}
private ArrayAdapter<String> childAdapter;
private void setChildSpinner() {
childList.addAll(Arrays.asList(childs[0]));
1)获得Spinner对象
childSpinner = (Spinner) findViewById(R.id.spinner2);
2)构建适配器对象
childAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,childList);
3)关联适配器对象
childSpinner.setAdapter(childAdapter);
4)添加监听器
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
//修改Spinner中的数据
childList.clear();
childList.addAll(Arrays.asList(childs[position]));
//刷新Spinner02
childAdapter.notifyDataSetChanged();
}
0 0
- 1604 week1 学习总结
- coursera机器学习 week1&week2&week3 总结
- 吴恩达 深度学习 CLass2 Week1 总结
- 普林斯顿大学算法第一部分学习总结(Week1-Percolation)
- XJOI Week1 奋斗总结
- pentesterlab学习记录-week1
- 机器学习week1-week2
- 操作系统学习(WEEK1-WEEK5)
- week1 机器学习介绍
- 机器学习笔记week1
- 机器学习week1-Introduction
- [week1]每周总结与工作计划
- week1
- week1
- week1
- week1
- week1
- week1
- Next RunLoop
- 三大框架-------->struts2Struts简介与Action基本配置
- Android数据存储之——SQLite数据库操作
- github常见操作和常见错误!错误提示:fatal: remote origin already exists.
- C++实验7-最大公约数和最小公倍数
- 1604 week1 学习总结
- oracle安装出现问题解决方案和重装oracle必须删除oracle的服务项
- 抽象工厂模式Abstract Factory
- virtualbox安装提示出现严重错误解决办法
- Codeforces70E Information Reform
- AsyncTask源码分析之Android篇
- 具有强运营属性的客户端产品基础技术架构
- JDK的方法是最优的吗?
- 算法之插入排序