android实现多列显示的下拉列表框-Spinner
来源:互联网 发布:k-means聚类算法 编辑:程序博客网 时间:2024/03/29 03:30
先上张效果图:
严格来说,这并不是一个下拉列表,只不过实现的效果很像是下拉列表
实现原理:
该下拉列表其实是一个AlertDialog.Builder,给它设置了一个以LinearLayout布局的View。该View内使用了一个GridView组件,
代码:
package yyy.testandroid9;private Intent intent;private int index = 0;private SharedPreferences preferences;private File file;private Spinner spinner;private GridView gridView;private LinearLayout layout;private Builder builder;private AlertDialog dialog;private MyAdapter adapter;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);LayoutInflater inflater = LayoutInflater.from(this);layout = (LinearLayout) inflater.inflate(R.layout.bank_grid, null);gridView = (GridView) layout.findViewById(R.id.grid);adapter = new MyAdapter(this);gridView.setAdapter(adapter);button1 = (Button) findViewById(R.id.button1);button2 = (Button) findViewById(R.id.button2);textView = (TextView) findViewById(R.id.textview);builder = new Builder(TestAndroid9Activity.this);builder.setView(layout); button1.setOnClickListener(new OnClickListener() {public void onClick(View arg0) {// TODO Auto-generated method stub if(dialog == null){ dialog = builder.show(); } dialog.show(); }});gridView.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {// TODO Auto-generated method stubbutton1.setText(getResources().getStringArray(R.array.city)[position]);dialog.dismiss();adapter.map.put(index, false);adapter.map.put(position, true);index = position;adapter.notifyDataSetChanged();}});}private class MyAdapter extends BaseAdapter{private Context context;private String[] citys;private LayoutInflater inflater; public HashMap<Integer, Boolean> map;public MyAdapter(Context context) {super();this.context = context;citys = context.getResources().getStringArray(R.array.city);inflater = LayoutInflater.from(context);map = new HashMap<Integer, Boolean>();for(int i=0;i<citys.length;i++){map.put(i, false);}}public int getCount() {// TODO Auto-generated method stubreturn citys.length;}public Object getItem(int position) {// TODO Auto-generated method stubreturn null;}public long getItemId(int position) {// TODO Auto-generated method stubreturn position;}public View getView(int position, View view, ViewGroup parent) {// TODO Auto-generated method stubif(view == null){view = inflater.inflate(R.layout.bank_item, null);}TextView textView = (TextView) view.findViewById(R.id.list_text);RadioButton radioButton = (RadioButton) view.findViewById(R.id.radiobutton);radioButton.setChecked(map.get(position));textView.setText(citys[position]);return view;}}
bank_grid.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="20dp" android:background="#ffffff" android:id="@+id/grid_layout"> <GridView android:id="@+id/grid" android:layout_width="fill_parent"android:layout_height="fill_parent"android:verticalSpacing="20px"android:horizontalSpacing="10px"android:numColumns="4"android:scrollbars="vertical"android:layout_margin="10dp"/></LinearLayout>
bank_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff" > <RadioButton android:id="@+id/radiobutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="15dp" android:focusable="false" android:clickable="false" android:focusableInTouchMode="false" /> <TextView android:id="@+id/list_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:layout_gravity="center_vertical"/></LinearLayout>
- android实现多列显示的下拉列表框-Spinner
- android实现多列显示的下拉列表框-Spinner
- Android-Spinner下拉列表显示
- Android-下拉列表框Spinner的使用
- android自定义Spinner下拉菜单和AutoCompleteTextView自动显示的(下拉列表框)样式
- android自定义Spinner下拉菜单和AutoCompleteTextView自动显示的(下拉列表框)样式
- Android实现三级联动下拉框 下拉列表spinner
- Android实现三级联动下拉框 下拉列表spinner
- Android实现三级联动下拉框 下拉列表spinner
- Android实现三级联动下拉框 下拉列表spinner
- Android实现三级联动下拉框 下拉列表spinner
- Android实现三级联动下拉框 下拉列表spinner
- Android实现三级联动下拉框 下拉列表spinner
- Android--下拉列表框(Spinner)
- Spinner显示下拉列表
- Android实现三级联动下拉框 下拉列表spinner的实例代码
- Android实现三级联动下拉框 下拉列表spinner的实例代码
- Android实现三级联动下拉框 下拉列表spinner的实例
- sharePoint 根据SP.js 获取文档库默认视图路劲
- 别让猴子跳回背上
- java获取客户端IP地址
- Runable接口
- java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- android实现多列显示的下拉列表框-Spinner
- 如何让全局常量通过外部文件properties来加载
- 复习(9.3)
- 复习作业(9.3)
- Java对象的强、软、弱和虚引用原理+结合ReferenceQueue对象构造Java对象的高速缓存器
- hdu1538 A Puzzle for Pirates---海盗分金---博弈
- Android 服务器推送技术
- 让家中电脑上的项目被互联网上用户访问
- 多线程编程