当前位置:  编程技术>移动开发
本页文章导读:
    ▪spinner控件 札记        spinner控件 笔记 1、在控件配置文件中添加Spinner控件标签2、得到ArrayAdapter对象3、将得到的Spinner对象和ArrayAdapter对象联系起来   第一种设置ArrayAdapter方式: List<String> list = new ArrayList<Str.........
    ▪ AutoCompleteTextView的根本使用        AutoCompleteTextView的基本使用 当输入部分内容之后会有相关的建议,类似于百度提示信息1、在布局文件中声明一个AutoCompleteTextView <AutoCompleteTextView android:id="@+id/autocomplete_country" android:layout.........
    ▪ 项目中遇到的一个有关问题-checkbox       项目中遇到的一个问题-checkbox  模拟下在项目中出现的问题   <1>选中3个   <2>往下滑动   <3>网上滑动后,刚才勾选的消失了   当时项目的解决方法 设一个MAP用于存方 是否.........

[1]spinner控件 札记
    来源: 互联网  发布时间: 2014-02-18
spinner控件 笔记

1、在控件配置文件中添加Spinner控件标签
2、得到ArrayAdapter对象
3、将得到的Spinner对象和ArrayAdapter对象联系起来

 

第一种设置ArrayAdapter方式:

List<String> list = new ArrayList<String>();
list.add("已婚");
list.add("未婚");
/*
* 第一个参数:上下文对象
* 第二个参数:指定了下拉选项的样式
* 第三个参数:是第二个参数TextView控件的ID值
* 第四个参数:List对象的值
*/
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.item, R.id.spinnerText, list);
spinner = (Spinner)findViewById(R.id.marray);
spinner.setAdapter(adapter);

 

第二中设置ArrayAdapter方式:

这种方式需要在values目录下建立一个新的文件夹

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string-array name="marryArray">
		<item>已婚</item>
		<item>未婚</item>
	</string-array>
</resources>
或者是直接在string.xml文件中添加上面的代码(不需要resources标签)
/*
* 通过createFromResource方法创建一个ArrayAdapter
* 第一个参数:上下文对象
* 第二个参数:引用了在spinner.xml文件当中定义的String数组
* 第三个参数:用来指定Spinner样式,是一个布局文件的ID,该布局文件有Android系统提供,当然也可以用自己写的
*/
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.marryArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

 

 选中Spinner控件的选项会触发AdapterView.OnItemSelectedListener事件

 

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
	@Override
	public void onItemSelected(AdapterView<?> arg0, View arg1,
			int arg2, long arg3) {
		Toast.makeText(getApplicationContext(), "ss", Toast.LENGTH_SHORT).show();
	}
	@Override
	public void onNothingSelected(AdapterView<?> arg0) {
		
	}
});

 


    
[2] AutoCompleteTextView的根本使用
    来源: 互联网  发布时间: 2014-02-18
AutoCompleteTextView的基本使用

当输入部分内容之后会有相关的建议,类似于百度提示信息
1、在布局文件中声明一个AutoCompleteTextView

<AutoCompleteTextView
		android:id="@+id/autocomplete_country"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dp"
	/>

 

2、定义一个提示条目的样式,在layout目录下建立list_item.xml文件

<?xml version="1.0" encoding="utf-8"?>
<TextView
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:padding="10dp"
	android:textSize="16sp"
	android:textColor="#000">
</TextView>

 

3、它需要使用ArrayAdapter来提供数据

public void setAutoCompleteTextView(){
	autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autocomplete_country);
	//COUNTRIES是一个数组,AutoCompleteTextView会将数组内容和用户输入的匹配,然后再显示出来提示用户
	//R.layout.list_item显示的是提示信息显示的内容的样式
	ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES);
	autoCompleteTextView.setAdapter(arrayAdapter);
}

 备注:COUNTRIES是一个数组类型

4、将AutoCompleteTextView和ArrayAdapter联系起来


    
[3] 项目中遇到的一个有关问题-checkbox
    来源: 互联网  发布时间: 2014-02-18
项目中遇到的一个问题-checkbox


 模拟下在项目中出现的问题


 
<1>选中3个


 
 
<2>往下滑动


 
<3>网上滑动后,刚才勾选的消失了


 

当时项目的解决方法
设一个MAP用于存方 是否勾选的boolean值。
checkbox是图片做得
在设配器里增加一个全局的map            
public Map<Integer, Boolean> isSelected=new HashMap<Integer, Boolean>();
捕获事件处理,屏蔽了checkbox的事件:lv.setOnItemClickListener(new OnItemClickListener(){
                              @Override
                              public void onItemClick(AdapterView<?> parent, View view,
                              int position, long id) {
                              cb=(CheckBox) view.findViewById(R.id.cb);
                              //切换图片状态,选中或者没选中
                              cb.toggle();
                              //将状态存到map里保存
                              adapter.isSelected.put(position, cb.isChecked());
                        }});
在适配器的处理的方式            :if(isSelected!=null&&isSelected.get(position)!=null){
                             holder.cb.setChecked(isSelected.get(position));
                             }
 
改后效果
<1>

 
<2>下拉后,会发现第二页有3项莫名的被选了


 
<3>拉回去,0,1,2依旧被勾选了的


 
问题解决了,但是出现了个新的问题,当你勾选了1,2,3,当你向后滚动发现另一个view也莫名奇妙的勾选了

解决方式:

第一种方式
      public View getView(final int position, View convertView, ViewGroup parent) {
            // 去掉下面那句,但是以后就每次会生成新的convertView
            //if(convertView==null)
            convertView=inflater.inflate(R.layout.a,null);
 
第二种方式
         
  boolean flag=false;
            holder.cb.setChecked(flag);
            if(isSelected!=null&&isSelected.get(position)!=null){
                  holder.cb.setChecked(isSelected.get(position));
            }
 

 


 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3