一:引用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"
  }