Archive for 九月 2011

Android 开启与关闭软键盘


InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
//得到InputMethodManager的实例
if (imm.isActive()) {
//如果开启
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS); 
//关闭软键盘,开启方法相同,这个方法是切换开启与关闭状态的
}

另外还有单独的开启及关闭方法:

hideSoftInputFromWindow(IBinder windowToken, int flags)
showSoftInput(View view, int flags)

IBinder参数可以通过EditText view的getWindowToken()方法来取到,如


imm.hideSoftInputFromWindow(search_key.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS) ;

隐藏的flags参数有HIDE_NOT_ALWAYS和HIDE_NOT_ALWAYS两种,显示的flags参数有SHOW_FORCED,SHOW_IMPLICIT两种,isActive()方法有时好像不太好用,我在项目中使用时返回的一直是true

AutoCompleteTextView绑定数据库,模糊匹配方法 使用CursorAdapter

通过CursorAdapter这个适配器,AutoCompleteTextView可以直接与sqlite数据库绑定,而不用在程序中预先添加匹配数据。并且,通过sql的like关键字,可以实现模糊查询,非首字母查询。
贴上代码: Continue reading ‘AutoCompleteTextView绑定数据库,模糊匹配方法 使用CursorAdapter’ »

sqlite column ‘_id’ does not exist 解决方法

今天在给一个AutoCompleteTextView绑定数据库的时候,提示column '_id' does not exist,仔细查了一下代码,我好像没写_id这一例,网上查了一下得知,这个列是必须有的。所以解决方法就有两种,一是在建数据库的时候直接就建一个,另一个方法就是把原来的主键 as _id就OK。如:


String[] columns = new String[] { "id as _id" };

Microsoft Expression Blend 4使用Silverlight for Windows Phone Toolkit内的组件

在Expression Blend 中,如果要使用Silverlight for Windows Phone Toolkit,需要重新添加引用(即使你已经在VS里引用),VS里使用Silverlight for Windows Phone Toolkit请参考Windows Phone 7下拉菜单的实现 Silverlight for Windows Phone Toolkit中ListPicker的使用
下载安装完Silverlight for Windows Phone Toolkit后,用Expression Blend打开需要编辑的项目,按Alt+Shift+R,找到Microsoft.Phone.Controls.Toolkit.dll,我的在C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Toolkit\Aug11\Bin目录,一般都在这里,如果是32位系统,稍有不同。
OK,现在Expression Blend可以使用所有Toolkit里的功能了

WP7开发 使用Application.GetResourceStream从XAP安装包加载任意资源

不得不说,WP7开发的资料真的是太少了,国内有句话叫“天下文章一大抄”,查Application.GetResourceStream的用法,找遍了整个网络,无非就那一两篇,而且写得还不完整,包括微软官方的例子。在花了近半天的时间后,终于解决问题。
我们可以预先把程序中用到的资源,如图片,音乐等放入项目中,打包进XAP文档,需要的时候从中调用。下面就说说具体实现方法。
第一步,把数据存进项目。
1、右键点击项目名称-添加-新建文件夹(英文版请自行翻译),这里文件夹名以image为例,把需要的图片拖进来,当然你也可以不建,直接把图片拖到项目项目录下,但为了整洁,建议还是建一下。
2、选中刚刚拖进去的图片,看右下角的属性标签,如果没有,右键点图片,选属性。生成操作选Resource. Continue reading ‘WP7开发 使用Application.GetResourceStream从XAP安装包加载任意资源’ »

Windows Phone 7开发 存取本地文件 使用IsolatedStorageFile

WP7在设计的时候确实比较封闭,应用程序没有直接操作闪存的权限,读取文件只能在系统专为该应用设定的目录内。虽然现在WP7上也有文件管理器,但都不是很完美,比如我的i917,在升了7712以后,网上所有的文件管理器都没用。
布局比较简单,上个图吧,代码就不贴了,下面再加上打包的源代码。

解释一下,TextBox用于输入保存到文件的内容,TextBlock用于显示读取到的文件内容。WP7的IsolatedStorage没有文件大小配额限制 Continue reading ‘Windows Phone 7开发 存取本地文件 使用IsolatedStorageFile’ »

Windows phone 7开发中调试程序出现0x89731812错误的解决

解决方法很简单,只要换个USB口就可以了,暂时不知问题所在。

WP7开发 TextBox 限定弹出软键盘样式

如果TextBox只能输入数字,比如说金额、QQ号码等,在用户点击TextBox进行输入时,我们可以定制软键盘样式,弹出数字键盘,这样可以大大方便用户。


            <TextBox Height="76" HorizontalAlignment="Left" Margin="51,229,0,0" Name="textBox1" Text="" VerticalAlignment="Top" Width="351" >
                <TextBox.InputScope>
                    <InputScope>
                        <InputScopeName NameValue="Digits"></InputScopeName>
                    </InputScope>
                </TextBox.InputScope>
            </TextBox>

NameValue的值Digits就是数字键盘,更多类型在Visual Studio中有提示