一:引用QMUI
1、新建一个演练项目:QMUI_Practise,使用Empty Activity。
里面放置2个按钮,一个点击后显示默认的对话框,一个点击后显示QMUI对话框,从而验证QMUI框架是否生效可以使用。
上面的功能,是一个简单的按钮点击功能,跟QMUI Android框架还没有任何关系。布局代码如下
1 <?xml version="1.0" encoding="utf-8"?> 2 3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 android:gravity="center" 9 android:orientation="vertical" 10 tools:context=".MainActivity"> 11 12 <Button 13 android:id="@+id/button_showDefaultDialog" 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:onClick="onClickShowDefaultDialog" 17 android:text="@string/button_showDefaultDialog"/> 18 19 <Button 20 android:id="@+id/button_showQMUIDialog" 21 android:layout_width="wrap_content" 22 android:layout_height="wrap_content" 23 android:onClick="onClickShowQMUIDialog" 24 android:text="@string/button_showQMUIDialog"/> 25 </LinearLayout>
MainActivity.java的关键代码如下,默认按钮的点击,显示Android默认的对话框。
1 public void onClickShowDefaultDialog(View view) { 2 new AlertDialog.Builder(this) 3 .setTitle("默认对话框标题") 4 .setMessage("这是默认对话框的内容") 5 .setNegativeButton("取消", new DialogInterface.OnClickListener() { 6 @Override 7 public void onClick(DialogInterface dialogInterface, int i) { 8 Toast.makeText(MainActivity.this, "点击了取消按钮", Toast.LENGTH_SHORT).show(); 9 dialogInterface.dismiss(); 10 } 11 }) 12 .setPositiveButton("确定", new DialogInterface.OnClickListener() { 13 @Override 14 public void onClick(DialogInterface dialogInterface, int i) { 15 Toast.makeText(MainActivity.this, "点击了确定按钮", Toast.LENGTH_SHORT).show(); 16 dialogInterface.dismiss(); 17 } 18 }) 19 .create() 20 .show(); 21 }
2、现在开始引入QMUI框架。先按照官网的三步骤来做。
1)引入库。官网上是这样。
compile 'com.qmuiteam:qmui:1.1.2'
但是,compile已经被被标记过时了,推荐使用implementation。警告提示如下,那我们就换成implementation。
在build.gradle(Module.app)上双击打开文件,在dependencies里面加入
implementation 'com.qmuiteam:qmui:1.1.2'
之后,Android studio会提示gradle文件已产生变化,需要重新同步。就是编辑区域最上面一行黄色背景的提示文字(Gradle files have changed since last project sync. A project sync may be necessary for the IDE to work),点击Sync Now即可。
如下图所示,同步没有错误,那么说明正常引入库文件了。
2)更改主题。官方指示:把项目的 theme 的 parent 指向 QMUI.Compat,至此,QMUI 可以正常工作。
在资源res文件夹中,找到values文件夹,打开里面的styles.xml文件,修改AppTheme,如下图所示。有3种效果都可以修改看看效果。
修改为QMUI时的效果,所有文字都变成蓝色了,包括状态栏。当然,这样会把所有的都改掉。
按官方的指示改成QMUI.Compat后,再点击之前的默认对话框按钮,效果如下。注意2个按钮的文字颜色,以及显示样式,都发生了变化。而且界面的状态栏没有了。这说明框架已经起了作用。
3)官方的第三步,我们到需要用的时候才要,现在可以不用管。
3、现在使用QMUI框架里面的对话框,看看现实效果。实现第二个按钮“现实QMUI对话框”的功能,代码如下:
1 new QMUIDialog.MessageDialogBuilder(this) 2 2 .setTitle("QMUI对话框标题") 3 3 .setMessage("这是QMUI框架对话框的内容") 4 4 .addAction("取消", new QMUIDialogAction.ActionListener() { 5 5 @Override 6 6 public void onClick(QMUIDialog dialog, int index) { 7 7 dialog.dismiss(); 8 8 Toast.makeText(MainActivity.this, "点击了取消按钮", Toast.LENGTH_SHORT).show(); 9 9 10 10 } 11 11 }) 12 12 .addAction("确定", new QMUIDialogAction.ActionListener() { 13 13 @Override 14 14 public void onClick(QMUIDialog dialog, int index) { 15 15 dialog.dismiss(); 16 16 Toast.makeText(MainActivity.this, "点击了确定按钮", Toast.LENGTH_SHORT).show(); 17 17 } 18 18 }) 19 19 .show(); 20 20 }
二、运行报错
1、编译源码,报 Error:(4 0) CreateProcess error=2 系统找不到指定的文件 错误。或者 input String“”
解决办法:
打开qmuidemo里面的gradle文件,注释掉顶部的
//def cmd = 'git rev-list HEAD --count'
//def gitVersion = cmd.execute().text.trim().toInteger()
然后把27行的versionCode改跟下面的版本号对应
versionCode 17
versionName "1.0.7"
提示:(如果在studio中无法直接打开gradle可已在文件夹中用其他工具打开grand了 然后重新导入编译项目)
2、导入正确后可能会爆出GBK的问题
解决办法:
在爆错的项目gradle文件加入
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
浙公网安备 33010602011771号