2.1 ArrayAdapter的使用

来源:互联网 发布:linux ntp服务器搭建 编辑:程序博客网 时间:2024/06/08 16:46

ArrayAdapter 支持泛型操作,是最简单的一个adapter,只能展现一行文字。

一、方法一:Java创建数组

1、代码实现:

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        String[] titles = {"星期一","星期二","星期三","星期四","星期五","星期六","星期天"};        //新建一个数据适配器        //第一个参数:代表上下文        //第二个参数:当前ListView加载的每一个列表所对应的布局文件        //第三个参数:数据源        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,titles);        ListView listView = (ListView)findViewById(R.id.listView);        //视图(ListView)加载适配器        listView.setAdapter(adapter);    }}

或者也可以这样写:

  List<String> data = new ArrayList<String>();        data.add("星期一");        data.add("星期二");        data.add("星期三");        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,data);        ListView listView = (ListView)findViewById(R.id.listView);        listView.setAdapter(adapter);

2、效果图:

这里写图片描述

二、方法二:数组资源创建数组

1、新建一个xml文件,命名为array,添加代码:

<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="myarray">         <item>星期一</item>         <item>星期二</item>         <item>星期三</item>         <item>星期四</item>         <item>星期五</item>         <item>星期六</item>         <item>星期天</item>    </string-array></resources>

2、代码示例:

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.myarray,android.R.layout.simple_expandable_list_item_1);        ListView listView = (ListView)findViewById(R.id.listView);        listView.setAdapter(adapter);    }}

三、拓展:列表的类型

系统给我们提供了一些ListView的模版:

1、android.R.layout.simple_expandable_list_item_1:单独一行的文本框

2、android.R.layout.simple_expandable_list_item_2:两个文本框组成

3、android.R.layout.simple_list_item_checked : 每项都是由一个已选中的列表项

4、android.R.layout. simple_list_item_multiple_choice : 都带有一个复选框

5、android.R.layout.simple_list_item_single_choice : 都带有一个单选钮

四、列表的点击事件

列表的点击事件主要是实现OnItemClickListener方法。

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener{    private ListView listView;    private ArrayAdapter arrayAdapter;    private SimpleAdapter simpleAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        String[] arr_data = {"星期一","星期二","星期三","星期四","星期五","星期六","星期天"};        listView = (ListView)findViewById(R.id.listView);        listView.setOnItemClickListener(this);       // listView.setOnScrollListener(this);        //新建一个数据适配器        //第一个参数:代表上下文        //第二个参数:当前ListView加载的每一个列表所对应的布局文件        //第三个参数:数据源        arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1, arr_data);        //视图(ListView)加载适配器        listView.setAdapter(arrayAdapter);    }    @Override    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {        String text = (String) listView.getItemAtPosition(i);        Toast.makeText(this,"position="+i,Toast.LENGTH_SHORT).show();    }
0 0