第一:

Spinner是一个列表选择框,但其并不需要显示下拉列表,二十相当于一个菜单供用户选择,下面用一个例子介绍:

在样式文件中:

<?xmlversion="1.0"encoding="utf-8"?>
  1. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="match_parent"
  3. android:layout_height="match_parent"
  4. android:orientation="vertical">
  5. <TextView
  6. android:layout_width="fill_parent"
  7. android:layout_height="wrap_content"
  8. android:text="请选择一项运动项目"
  9. />
  10. <Spinner
  11. android:id="@+id/sportsSp"
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content"
  14. android:prompt="@string/spinner_prompt"
  15. android:entries="@array/sports"
  16. />
  17. </LinearLayout>
<?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>


在<Spinner>标签中,通过android:prompt来设置弹出选择框的标题,通过android:entries来设置默认的列表选项(定义在一个arrays.xml文件中)

view plain copy to clipboard print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3. <string-arrayname="sports">
  4. <item>足球</item>
  5. <item>篮球</item>
  6. <item>乒乓球</item>
  7. <item>网球</item>
  8. </string-array>
  9. </resources>
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports" > <item>足球</item> <item>篮球</item> <item>乒乓球</item> <item>网球</item> </string-array> </resources>
监听列表点击事件:

view plain copy to clipboard print ?
  1. packagecn.class3g.activity;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.util.Log;
  5. importandroid.view.View;
  6. importandroid.widget.AdapterView;
  7. importandroid.widget.AdapterView.OnItemSelectedListener;
  8. importandroid.widget.Spinner;
  9. importandroid.widget.TextView;
  10. publicclassSpinnerDemoextendsActivityimplementsOnItemSelectedListener{
  11. SpinnersportSp=null;
  12. protectedvoidonCreate(BundlesavedInstanceState){
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.spinner_layout);
  15. findViews();
  16. }
  17. privatevoidfindViews(){
  18. sportSp=(Spinner)this.findViewById(R.id.sportsSp);
  19. sportSp.setOnItemSelectedListener(this);
  20. sportSp.performClick();
  21. }
  22. //每选择一次均以日志输出形式打印
  23. publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,intarg2,
  24. longarg3){
  25. TextViewtv=(TextView)arg1;
  26. Log.i("TAG",tv.getText().toString());
  27. }
  28. publicvoidonNothingSelected(AdapterView<?>arg0){
  29. }
  30. }
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(); } //每选择一次均以日志输出形式打印 public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { TextView tv = (TextView) arg1; Log.i("TAG", tv.getText().toString()); } public void onNothingSelected(AdapterView<?> arg0) { } }
在模拟器中的效果与日志输出结果:

android之组件2_第1张图片

第二:

ListView列表视图,为列表添加列表项有两种方法,下面用一个列子分别介绍:

在样式文件中:

view plain copy to clipboard print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. <TextView
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:text="名单:"
  10. />
  11. <ListView
  12. android:layout_width="fill_parent"
  13. android:layout_height="wrap_content"
  14. android:entries="@array/sports"
  15. android:divider="#00FF00"
  16. />
  17. <ListView
  18. android:layout_width="fill_parent"
  19. android:layout_height="wrap_content"
  20. android:id="@+id/nameList"
  21. android:divider="#00FF00"
  22. />
  23. </LinearLayout>

<?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:entries="@array/sports" android:divider="#00FF00" /> <ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/nameList" android:divider="#00FF00" /> </LinearLayout>
在上面的布局中定义了两个ListView,第一个ListView通过android:entries指定了列表的项数组:

view plain copy to clipboard print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3. <string-arrayname="sports">
  4. <item>足球</item>
  5. <item>篮球</item>
  6. <item>乒乓球</item>
  7. <item>网球</item>
  8. </string-array>
  9. </resources>

<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports" > <item>足球</item> <item>篮球</item> <item>乒乓球</item> <item>网球</item> </string-array> </resources>
第二个ListView通过ArrayAdapter适配器使用数组来确定列表项,并监听点击事件,每点击用日志输出打印:

view plain copy to clipboard print ?
  1. packagecn.class3g.activity;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.util.Log;
  5. importandroid.view.View;
  6. importandroid.widget.AdapterView;
  7. importandroid.widget.AdapterView.OnItemClickListener;
  8. importandroid.widget.ArrayAdapter;
  9. importandroid.widget.ListView;
  10. publicclassListViewDemoextendsActivity
  11. implementsOnItemClickListener{
  12. ListViewnameList=null;
  13. String[]names={"张三","李四","王五","宋六","猪八"};
  14. protectedvoidonCreate(BundlesavedInstanceState){
  15. super.onCreate(savedInstanceState);
  16. this.setContentView(R.layout.list_layout);
  17. findViews();
  18. }
  19. privatevoidfindViews(){
  20. nameList=(ListView)this.findViewById(R.id.nameList);
  21. //定义一个适配器,同时将定义列表项的数组添加进去
  22. ArrayAdapteradapter=newArrayAdapter(this,
  23. android.R.layout.simple_list_item_1,names);
  24. nameList.setAdapter(adapter);
  25. //为列表添加监听事件
  26. nameList.setOnItemClickListener(this);
  27. }
  28. //覆盖监听器接口OnItemClickListener的抽象方法通过日志打印所点击的列表项信息
  29. publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){
  30. Log.i("TAG",names[arg2]
  31. +"position="+String.valueOf(arg2)
  32. +"row_id="+String.valueOf(arg3));

第三:

Spinner是一个列表选择框,但其并不需要显示下拉列表,二十相当于一个菜单供用户选择,下面用一个例子介绍:

在样式文件中:

view plain copy to clipboard print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. <TextView
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:text="请选择一项运动项目"
  10. />
  11. <Spinner
  12. android:id="@+id/sportsSp"
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content"
  15. android:prompt="@string/spinner_prompt"
  16. android:entries="@array/sports"
  17. />
  18. </LinearLayout>

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


在<Spinner>标签中,通过android:prompt来设置弹出选择框的标题,通过android:entries来设置默认的列表选项(定义在一个arrays.xml文件中)

view plain copy to clipboard print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3. <string-arrayname="sports">
  4. <item>足球</item>
  5. <item>篮球</item>
  6. <item>乒乓球</item>
  7. <item>网球</item>
  8. </string-array>
  9. </resources>

<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports" > <item>足球</item> <item>篮球</item> <item>乒乓球</item> <item>网球</item> </string-array> </resources>
监听列表点击事件:

view plain copy to clipboard print ?
  1. packagecn.class3g.activity;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.util.Log;
  5. importandroid.view.View;
  6. importandroid.widget.AdapterView;
  7. importandroid.widget.AdapterView.OnItemSelectedListener;
  8. importandroid.widget.Spinner;
  9. importandroid.widget.TextView;
  10. publicclassSpinnerDemoextendsActivityimplementsOnItemSelectedListener{
  11. SpinnersportSp=null;
  12. protectedvoidonCreate(BundlesavedInstanceState){
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.spinner_layout);
  15. findViews();
  16. }
  17. privatevoidfindViews(){
  18. sportSp=(Spinner)this.findViewById(R.id.sportsSp);
  19. sportSp.setOnItemSelectedListener(this);
  20. sportSp.performClick();
  21. }
  22. //每选择一次均以日志输出形式打印
  23. publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,intarg2,
  24. longarg3){
  25. TextViewtv=(TextView)arg1;
  26. Log.i("TAG",tv.getText().toString());
  27. }
  28. publicvoidonNothingSelected(AdapterView<?>arg0){
  29. }
  30. }

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(); } //每选择一次均以日志输出形式打印 public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { TextView tv = (TextView) arg1; Log.i("TAG", tv.getText().toString()); } public void onNothingSelected(AdapterView<?> arg0) { } }
在模拟器中的效果与日志输出结果:

android之组件2_第2张图片


更多相关文章

  1. android 实现QQ好友列表(扩展listview:ExpandableListView)
  2. android 图文列表的实现方法
  3. Android开发获取开机启动项列表
  4. android折叠展开自定义列表项测试
  5. Android 开源项目列表
  6. Android UI 之TextView控件中可选择的属性列表,开发中经常用到的

随机推荐

  1. 自动同步vps服务器或本地文件的数据到百
  2. php如何判断数组["a","b","c"]中是否含有
  3. wamp如何添加多个站点
  4. PHP 括号配对判断及修正
  5. 一个好用的PHP验证码类
  6. 用于上传多个文件的PHP代码
  7. 使用AJAX值的Fileupload不会以其他字段的
  8. 在PHP中从JSON获取数据
  9. 强制动态加载的类来扩展或实现接口
  10. PHP加密解密明文相同每次密文不一样非对