请教probit模型中异方差模型的处理问题

ArrayAdapter和BaseAdapter的区别是什么_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ArrayAdapter和BaseAdapter的区别是什么
上传于|0|0|文档简介
&&ArrayAdapter和BaseAdapter的区别是什么
你可能喜欢posts - 23,&
comments - 65,&
trackbacks - 0
一.什么是适配器,适配器有什么用?
适配器是AdapterView视图(如ListView - 列表视图控件、Gallery -&缩略图浏览器控件、GridView -&网格控件、Spinner - 下拉列表控件、AutoCompleteTextView - 自动提示文本框、ExpandableListView - 支持展开/收缩功能的列表控件等)与数据之间的桥梁,用来处理数据并将数据绑定到AdapterView上。android提供多种适配器,开发时可以针对数据源的不同采用最方便的适配器,也可以自定义适配器完成复杂功能。
AdapterView对象有两个主要任务
&&& 1. 在布局中显示数据
&&& 2. 处理用户的选择
BaseAdapter一般的适配器基类可用于将数据绑定到listview、Gallery、GridView 、spinner、AutoCompleteTextView上,当然也可以绑定到ExpandableListView上BaseExpandableListAdapter可扩展的适配器基类可用于将数据绑定到支持展开/收缩功能的列表控件ExpandableListView上,ExpandableListView继承自ListView
二.两种适配器基类的相关类图与继承关系
1&BaseAdapter适配器相关类图:图1和图2
&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图1&&& BaseAdapter适配器相关类图
&&&&&&&&&&&&&
&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图2 && BaseAdapter适配器相关类图(续)
2&BaseExpandableListAdapter适配器相关类图:图3
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图3& BaseExpandableListAdapter适配器相关类图
三.重要类的相关方法构造函数的具体分析
1.ArrayAdapter
1&数据源写法对比
1.用静态字符数组常量来给ArrayAdapter 赋值。&优点,直接用数组写入,数据量大建议使用。
static final String[]&list="...";
ArrayAdapter&String& arrayAdapter = new ArrayAdapter&String&(this,R.layout.list_item,list);
2.在程序中给ArrayAdapter 赋值。优点:可以在程序中灵活写入。
ArrayList&String& list = new ArrayList&String&();
list.add("数据1");
list.add("数据N");
ArrayAdapter&String& arrayAdapter = new ArrayAdapter&String&(this,R.layout.list_item,list);
3.使用国际化接口 字符数组来 给ArrayAdapter 赋值。优点:提供的组件的选项可以国际化。
目录【res】&【values】&【strings.xml】添加
&string-array name="letter"&
  &item&A&/item&
  &item&B&/item&
  &item&C&/item&
  &item&D&/item&
&/string-array&
ArrayAdapter&CharSequence&
ArrayAdapter.createFromResource(this,R.array.letter,android.R.layout.my_list_item)//只需要显示
ArrayAdapter&CharSequence& adapter = new ArrayAdapter(this,android.R.layout.my_list_item,Arrays.asList(getResources().getTextArray(R.array.letter)))//允许动态增删
2&什么情况使用ArrayAdapter,什么时候使用BaseAdapter
当数量较多,比如超过100条或频繁动态增减时使用arrayadapter可以方便控制ui,
如果仅仅为了显示则使用baseadapter更节省资源
阅读(...) 评论()ListView——ArrayAdapter - 蜗牛/ 的博客
- ITeye技术网站
ListView用多了,自然而然想去抽时间总结一下,毕竟copy来copy去,久而久之也会也淡忘,勒个时候再去花时间去阅读自己写过的代码,太不明智,也费时间。在这里我把用过的ListView都拿出来与大家分享。持续更新附源码。
一:分别继承于Activity,ListActivity,ListView使用
&&
&& 1)继承于Activity写法
public class ListView_ArrayAdapterActivity extends Activity {
private ListView listV
private ArrayList&String& list=new ArrayList&String&();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.listView);
ArrayAdapter&String& adapter=new ArrayAdapter&String&(this,android.R.layout.simple_expandable_list_item_1,getListData());
listView.setAdapter(adapter);
public List&String& getListData(){
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
list.add("Item 4");
list.add("Item 5");
&& 2)继承于ListActivity写法
&&&
public class ListView_ArrayAdapterActivity extends ListActivity {
private ArrayList&String& list=new ArrayList&String&();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayAdapter&String& adapter=new ArrayAdapter&String&(this,android.R.layout.simple_expandable_list_item_1,getListData());
setListAdapter(adapter);
public List&String& getListData(){
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
list.add("Item 4");
list.add("Item 5");
对比很容易发现,前者(extends Activity)需要在xml布局中找到ListView控件,后者则不需要,但是后者xml布局中ListView标签id固定.
最后关于布局文件,前者(extends Activity)xml布局中,ListView标签id可以任意取值,而后者(extends ListActivity)ListView标签中id写法固定android:id="@+id/android:list"
二:以ArrayAdapter为例,自定义ListItem样式
系统样式:
android.R.layout.simple_expandable_list_item_1
ArrayAdapter&String& adapter=new ArrayAdapter&String&(this,android.R.layout.simple_expandable_list_item_1,getListData());
自定义样式
R.layout.my_simple_list_item_1 ArrayAdapter&String& adapter=new ArrayAdapter&String&(this,R.layout.my_simple_list_item_1,getListData());
my_simple_list_item_1.xml:
&?xml version="1.0" encoding="utf-8"?&
&TextView xmlns:android="/apk/res/android"
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#0000FF"
android:textSize="12pt"
请留意这种布局,根布局为控件TextView.
三:自定义ArrayAdapter
ListView_ArrayAdapterActivity .java
public class ListView_ArrayAdapterActivity extends Activity {
private ListView listV
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.listView);
IconListAdapter adapter = new IconListAdapter(this,getListData());
listView.setAdapter(adapter);
//初始化数据
private List&IconListItem& getListData(){
List&IconListItem& listItems = new ArrayList&IconListItem&();
IconListItem item1 = new IconListItem("Item 1
",R.drawable.icon );
IconListItem item2 = new IconListItem("Item 2
",R.drawable.icon );
IconListItem item3 = new IconListItem("Item 3
",R.drawable.icon );
IconListItem item4 = new IconListItem("Item 4
",R.drawable.icon );
listItems.add(item1);
listItems.add(item2);
listItems.add(item3);
listItems.add(item4);
return listI
class IconListAdapter extends ArrayAdapter&IconListItem& {
protected LayoutInflater mI
private static final int mLayout = R.layout.custom_layout1;
public IconListAdapter(Context context,List&IconListItem& items) {
super(context,mLayout, items);//上下文环境/布局文件/填充布局文件数据
mInflater = LayoutInflater.from(ListView_ArrayAdapterActivity.this);
public View getView(int position, View convertView, ViewGroup parent) {
TextView textV
ImageView imageV
if (convertView == null) {
view = mInflater.inflate(mLayout,null);
view = convertV
textView = (TextView) view.findViewById(R.id.text1);
textView.setText(getItem(position).getTitle());
imageView = (ImageView) view.findViewById(R.id.icon);
imageView.setImageResource(getItem(position).getResource());
IconListItem.java
public class IconListItem {
//每条显示的构造方法
private final String mT
private final int mR
public IconListItem(String title, int resource) {
mResource =
public String getTitle() {
public int getResource() {
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
&/LinearLayout&
custom_layout1.xml
&?xml version="1.0" encoding="utf-8"?&
&RelativeLayout
xmlns:android="/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
&ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
&/RelativeLayout&
引用给大家列出本类所有成员方法实用的处理方式:
void& add(T object)& //添加一个对象到本ArrayAdapter
void& clear()& //清除所有元素
static ArrayAdapter&CharSequence&& createFromResource(Context context, int textArrayResId, int textViewResId)& //从layout资源构造arrayadapter
Context& getContext()& //获取实例
int& getCount()
View& getDropDownView(int position, View convertView, ViewGroup parent)& //获取drop down的popup风格选择条目的内容,参数1是位置,参数2可以通过强制转换直接获取本条的内容
Filter& getFilter() //使用正则过滤数据
T& getItem(int position)& //获取单条内容
long& getItemId(int position)&
int& getPosition(T item) //通过内容获取是某条
View& getView(int position, View convertView, ViewGroup parent)
void& insert(T object, int index)& //插入新条目到数组的index位置
void& notifyDataSetChanged()& //通知数据变化了,告诉绑定Adapter的widget来更新UI
void& remove(T object)& //移出一条从数组,这里并没有指定位置
void& setDropDownViewResource(int resource)& //设置dropdown的layout风格
Sets the layout resource to create the drop down views.
void& setNotifyOnChange(boolean notifyOnChange)& //本条是arrayadapter最强大的功能,android123强烈推荐处理大数据时使用该方法,可以降低ui的处理量,刷新ui可以更快速,主要可以停止对
(add(T), insert(T, int), remove(T), clear() 的操作,当然可以通过 notifyDataSetChanged(). 或 setNotifyOnChange(true) 通知变化
void& sort(Comparator&? super T& comparator)& //这里是android开发网经常用的排序,使用arrayadapter可以直接排序,十分方便
推荐大家什么情况使用arrayadapter,什么时候使用baseadapter。当数量较多,比如超过100条或频繁动态增减时使用arrayadapter可以方便控制ui,通过setNotifyOnChanage方法,如果比较简单仅仅呈现直接从 baseadapter更节省资源。
浏览 11637
浏览: 231974 次
来自: 武汉
Mfeng 写道评论竟然不能删除
评论竟然不能删除
如何更改回来?
写点有技术含量的,纯浪费时间的文章
龙哥IT 写道setTextView(int,String)? ...11:01 提问
Spinner级联操作时实现继承的抽象方法
Spinner sp=(Spinner)findViewById(R.id.spinner1);
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView&?& arg0, View arg1,int arg2, long arg3) {
String province=arg0.getItemAtPosition(arg2).toString();
//得到省份
ArrayAdapter adapter=
Spinner sp2=(Spinner)findViewById(R.id.spinner2);
switch(ProvinceList.valueOf(province)){
case 湖北省:
adapter = ArrayAdapter.createFromResource(
MainActivity.this,
R.array.HB_city_array,
//用对应的string-array填充spinner2
android.R.layout.simple_spinner_item );
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
//设置下拉样式
sp2.setAdapter(adapter);
case 湖南省:
然后有两处错误,一处是第二行的参数列表new AdapterView.OnItemSelectedListener()
错误提示The type new AdapterView.OnItemSelectedListener(){} must implement the inherited abstract method AdapterView.OnItemSelectedListener.onNothingSelected(AdapterView&?&)
还有一处是ArrayAdapter
adapter;错误提示Duplicate local variable adapter
按赞数排序
第一处错误是提示你还得重写onNothingSelected(),如果不需要做什么操作可不写方法体
public void onNothingSelected(AdapterView&?&{}加上就行了
其他相似问题android应用开发之spinner控件的简单使用
&Android的控件有很多种,其中就有一个Spinner的控件,这个控件其实就是一个下拉显示列表。Spinner是位于 android.widget包下的,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器。Spinner是View类的一个子类。
先看spinner的效果图:
MainActivity
package com.mecury.
import java.util.ArrayL
import android.support.v7.app.ActionBarA
import android.os.B
import android.view.V
import android.widget.AdapterV
import android.widget.ArrayA
import android.widget.S
public class MainActivity extends ActionBarActivity {
private Spinner spinnerB
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinnerButton = (Spinner) findViewById(R.id.spinnerButton);
spinner = (Spinner) findViewById(R.id.spinner2);
/*静态的显示下来出来的菜单选项,显示的数组元素提前已经设置好了
* 第二个参数:已经编写好的数组
* 第三个数据:默认的样式
ArrayAdapter&CharSequence& adapter =
ArrayAdapter.createFromResource(this, R.array.number_array, android.R.layout.simple_spinner_item);
//设置spinner中每个条目的样式,同样是引用android提供的布局文件
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerButton.setAdapter(adapter);
spinnerButton.setPrompt("测试");
spinnerButton.setOnItemSelectedListener(new spinnerListener());
* 动态添显示下来菜单的选项,可以动态添加元素
ArrayList&String& list = new ArrayList&String&();
list.add("1.苹果");
list.add("2.橘子");
* 第二个参数是显示的布局
* 第三个参数是在布局显示的位置id
* 第四个参数是将要显示的数据
ArrayAdapter adapter2 = new ArrayAdapter(this, R.layout.item, R.id.textview,list);
spinner.setAdapter(adapter2);
spinner.setOnItemSelectedListener(new spinner2Listener());
class spinnerListener implements android.widget.AdapterView.OnItemSelectedListener{
public void onItemSelected(AdapterView&?& parent, View view,
int position, long id) {
//将选择的元素显示出来
String selected = parent.getItemAtPosition(position).toString();
public void onNothingSelected(AdapterView&?& parent) {
System.out.println("nothingSelect");
class spinner2Listener implements android.widget.AdapterView.OnItemSelectedListener{
public void onItemSelected(AdapterView&?& parent, View view,
int position, long id) {
String selected = parent.getItemAtPosition(position).toString();
public void onNothingSelected(AdapterView&?& parent) {
System.out.println("nothingSelect");
&main_activity的代码:
&LinearLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
tools:context="com.mecury.spinnertest.MainActivity" &
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="这是静态的:"/&
android:id="@+id/spinnerButton"
android:layout_width="match_parent"
android:layout_height="30dp"/&
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="这是动态的:"/&
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"/&
&/LinearLayout&
因为第一种是静态的实现方法,我们需要事先设置好spinner要显示的内容。在String.xml文件中添加需要显示的内容:
&string-array name="number_array"&
&item&1000&/item&
&item&2000&/item&
&item&3000&/item&
&item&4000&/item&
&item&5000&/item&
&item&6000&/item&
&item&7000&/item&
&item&8000&/item&
&item&9000&/item&
&/string-array&
第二种是静态的实现方法,我们使用自己的显示布局item.xml。
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00ffff"
android:padding="10dp"
android:orientation="vertical" &
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20dp"/&
&/LinearLayout&
以上内容是关于android应用开发之spinner控件的简单使用,希望对大家有所帮助。
顶一下(0) 踩一下(0)
热门标签:}

我要回帖

更多关于 条件异方差模型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信