android日志-<二>

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,?>>