Android界面组件3--ListView Spinner

来源:互联网 发布:linux定时器 settimer 编辑:程序博客网 时间:2024/05/18 01:02

1.ListView

ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项。

创建ListView有两种方式:

      直接使用ListView进行创建

      让Activity继承ListActivity

1)直接使用ListView进行创建

在list_layout.xml中代码如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" ><TextView     android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="名单"    /><ListView     android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:id="@+id/nameList"    />    </LinearLayout>

在ListViewDemo.java中代码如下:

package cn.class3g.activity;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;public class ListViewDemo extends Activity implements OnItemClickListener{ListView nameList = null;String[] names = {"张三","李四","王五","宋留","猪八"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.list_layout);findView();}private void findView() {nameList = (ListView) this.findViewById(R.id.nameList);ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,names);nameList.setAdapter(adapter);nameList.setOnItemClickListener(this);}//覆盖监听器接口OnItemClickListener的抽象方法public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {Log.i("TAG", names[arg2] + "position = " + String.valueOf(arg2) + "row_id = " + String.valueOf(arg3));}}

2)让Activity继承ListActivity

在ListActivityDemo.java中代码如下:

package cn.class3g.activity;import android.app.ListActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;public class ListActivityDemo extends ListActivity {String[] names = {"张三","李四","王五","宋留","猪八"};protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,names);this.setListAdapter(adapter);}//覆盖父类方法,无需专门创建和注册监听器protected void onListItemClick(ListView l, View v, int position, long id) {Log.i("TAG", names[position] + "position = " + String.valueOf(position) + "row_id = " + String.valueOf(id));}}

两种方法显示效果相同:

2.Spinner

Spinner其实就是一个列表选择框

在arrays.xml中指定数组资源

<?xml version="1.0" encoding="utf-8"?><resources><string-array name="sports">    <item>足球</item>    <item>篮球</item>    <item>乒乓球</item>    <item>网球</item></string-array>    </resources>

在spinner_layout.xml中代码如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="请选择一个运动项目"        />    <Spinner         android:id="@+id/sportsSp"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:prompt="@string/spinner_prompt"        android:entries="@array/sports"        /></LinearLayout>

在SpinnerDemo.java中代码如下:

package cn.class3g.activity;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.Spinner;import android.widget.TextView;public class SpinnerDemo extends Activity implements OnItemSelectedListener{Spinner sportSp = null;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.spinner_layout);findViews();}private void findViews() {sportSp = (Spinner) this.findViewById(R.id.sportsSp);sportSp.setOnItemSelectedListener(this);sportSp.performClick();}@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {TextView tv = (TextView) arg1;Log.i("TAG", tv.getText().toString());}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {}}

显示效果如下:



原创粉丝点击