作为android Api提供的适配器,其功能也相对简单,使用性也比较弱。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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.list.MainActivity" >
<!-- 设置ListView的基本样式 -->
<ListView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#ff0000"
android:dividerHeight="2dp"
android:id="@+id/lv"></ListView>
</RelativeLayout>
二 在MainActivity填充数据
package com.example.list;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
private ListView listView;//View
private ArrayAdapter<String> adapter;//Controller
private String[] language = {"java","c","javascript","c","javascript","c",
"javascript","c","javascript","c","javascript","c","javascript",
"c","javascript","c","javascript","c","javascript","c","javascript"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1.context 上下文对象
//2.resources 资源 为列表项提供格式
//3.object 为adapt提供数据
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, language);
listView = (ListView) findViewById(R.id.lv);
listView.setAdapter(adapter);//注册adapt
}
@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 boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
三 结果:
四 总结
其实这种模式很想经典的MVC模式,ArrayAdapter其实充当的就是MVC中的Controller,它负责将M和V连接起来,而ListView就相当于MVC中的View,仅仅起着显示数据的作用
数据进行简单的封装就充当Model层,这种模式将各层的职责分工的很明确,以上都是我学习中的个人理解,理解有误请大家指正。