1.适配器Adapter
适配器可以为多个不相关的API提供一个公共的接口,Android的适配器负责为选择部件提供数据源,也负责将单独的数据源色转换为显示在选择部件中的特定视图。
ArryAdapter接受3个参数
要使用的上下文(通常即使当前的acticity实例)
要使用的视图的资源ID
要实际显示的选项组或列表
2.列表ListView
Android中最经典的列表框部件叫做ListView
ListView调用setAdapter()以提供数据和子视图
然后通过添加一个侦听器,以便在选项变化时作出反应
setOnltemClickListener()
package com.example.shipeiqi;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivityextends AppCompatActivity {
//数据源
private String[]date={"吉林","辽宁","黑龙江","大连"};
//控件
private ListViewlistView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(ListView)findViewById(R.id.listView1);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view,int position,long id) {
Toast.makeText(MainActivity.this,"你选择的城市是:"+date[position],Toast.LENGTH_SHORT).show();
}
});
//适配器
// ArrayAdapter<string style="box-sizing: border-box;"> adapter=new ArrayAdapter<string style="box-sizing: border-box;">(</string></string>
// this, //上下文
// R.layout.list_item, //项布局
// R.id.text1, //数据要显示控件Id
// date //数据源
// );
ArrayAdapter<string style="box-sizing: border-box;"> adapter=new ArrayAdapter<string style="box-sizing: border-box;">(</string></string>
this,
android.R.layout.simple_expandable_list_item_1,//系统中已定义过的布局文件
android.R.id.text1,//布局文件中的TextView id 为text1
date
);
//设置适配器
listView.setAdapter(adapter);
}
}