Android之ListView<3>ArrayAdapter,SimpleAdapter

        前面的两篇博文讲的ListView的实现,首先要拿到布局文件中的ListView,然后为其添加适配器,写一个内部类继承BaseAdapter,然后重写里面的getCount和getView方法,其实在android内部,google工程师已经写好了某些类已继承BaseAdapter,这样我们就可以直接new出ArrayAdapter和SimpleAdapter,选取不同的构造函数达到我们的要求。

 

ArrayAdapter的构造函数如下,其它的构造函数内部实现原理也都一样:

public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)

context:上下文

 

resource:布局列表项的layout文件

textViewResource:布局文件中要修改的TextView的id

 objects:填充TextView的对象,一般情况下是String数组

public class MainActivity extends Activity {

	public static String[] data = {
		"textView1", "textView2", "textView3",
		"textView4", "textView5", "textView6",
		"textView7", "textView8", "textView9"
	};
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = (ListView)findViewById(R.id.listView);
        
        listView.setAdapter(new ArrayAdapter<String>(
        		MainActivity.this,
        		R.layout.show,
        		R.id.textView,
        		data));
    }

}

 
Android之ListView<3>ArrayAdapter,SimpleAdapter
 

 

 

        由上构造函数可以看出ArrayAdapter的实现功能是比较单一的,它只能够修改布局文件中的TextView的某一个,对比较简单的布局用ArrayAdapter还是可以的,ArrayAdapter就像ListView<1>中在getView方法中直接new一个TextView对象,然后对其进行修饰是一样的,而在ListView<2>中,我们已经可以自己指定ListView显示的条目的结构与内容,google工程师同样用了一个简单的形式去实现这种功能,那就是SimpleAdapter。

 

SimpleAdapter的构造函数:

public SimpleAdapter(Context context, List<? extends Map<String, ?>> data,
            int resource, String[] from, int[] to)

         SimpleAdapter的构造韩函数只此一个

 

context:上下文

data:一个List集合,集合中的元素是Map对象

resource:布局文件

from、to:Map中的键和布局文件中的组建id一一对应

        SimpleAdapter可以实现动态修改布局文件显示的内容:



 

 

 

你可能感兴趣的:(android,ListView,ArrayAdapter,SimpleAdapter)