android日志-<二>
哎呀呀,昨天忙到凌晨就没有写日记了,回来就睡啦。
今天一起补上吧。
Spinner--下拉列表--ArrayAdapter
一个简单的下拉列表
需要使用适配器来给Spinner提供数据内容
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"//定义线性布局的方式:垂直布局
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Spinner//下拉列表
android:id="@+id/spinner_test"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/show_Btn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="查询航班"
/>
</LinearLayout>
public class SpinnerTest extends Activity {
/** Called when the activity is first created. */
private Spinner spinner_test;//定义spinner为全局变量
private ArrayList<String> data;//数据list
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner_test = (Spinner) findViewById(R.id.spinner_test);
getData();
//通过ArrayAapter适配器来给Spinner提供数据源
ArrayAdapter<String> strAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, data);
spinner_test.setAdapter(strAdapter);
Button showBtn=(Button)findViewById(R.id.show_Btn);
showBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String name=(String)spinner_test.getSelectedItem();
new AlertDialog.Builder(SpinnerTest.this).setTitle("提示").setMessage(name).show();
}
});
}
public void getData() {
data = new ArrayList<String>();
data.add("北京-首都机场");
data.add("上海-虹桥机场");
data.add("广州-白云机场");
}
}
ListView--列表--SimpleAdapter
1) 定义整个页面的布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="wrap_content">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal">
<Button android:id="@+id/priew_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="前一天"/> <TextView android:id="@+id/showDateview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/show_date"/>
<Button android:id="@+id/priew_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="后一天"/>
</LinearLayout>
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</ListView>
</LinearLayout>
2) 定义Activity,设置活动的布局
3) 定义ListView Item的布局
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="2.5dp">
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/show_item1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/show_item2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/show_item3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/show_item4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/show_item5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/show_item6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
4) 在Activity类中得到ListView对象,并为他设置Adapter.
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.listactivity);
listview=(ListView)findViewById(R.id.list_view);
getData();//填充数据源
//数据源的显示顺序,
String[] resource={"flight_num","from_airport","to_airport","ticket_price","dep_time","arr_time"};
//数据源的显示组件
int[] ids={R.id.show_item1,R.id.show_item2,R.id.show_item3,R.id.show_item4,R.id.show_item5,R.id.show_item6};
通过一个SimpleAdapter把ListView 和item的布局联系起来
SimpleAdapter listAdapter=new SimpleAdapter(this//当前对象,list//数据源<是一个List>,R.layout.list_table//元素布局文件,resource//元素,ids//元素表现方式);
listview.setAdapter(listAdapter);//设置LISTVIEW的Adapter
}
private void getData() {
list=new ArrayList<Map<String,Object>>();
for (int i = 0; i < 15; i++) {
Map<String, Object> record = new HashMap<String, Object>();
record.put("flight_num", "TL120"+i);
record.put("from_airport", "北京-首都机场");
record.put("to_airport", "上海-虹桥机场");
record.put("ticket_price", "1000");
record.put("dep_time", "12:55");
record.put("arr_time", "14:43");
list.add(record);
}
5) 使用SimpleAdapter,5个构造参数,在Adapter中指定每一个参数和布局中的组件的对应关系.
6) 要显示的数据存放的格式List<Map<String,?>>