xUtils3.5 在 as 3.1.2 的安装使用

1. 按照官方文档,在gradle中引用xUtils3的包,在gradle4.4中,需要这样引用,不能完全按照官方的compile。用关键字api来引用

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    api 'org.xutils:xutils:3.5.0'                     //关键引入
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

2.独立写一个类,继承Application,并且在配置文件中,配置此文件。如写一个类名叫MyApp,并且写注入代码,x.Ext.init(this)和x.Ext.setDebug(true)日志

public class MyApp extends Application {
    @Override
    public void onCreate() {

        super.onCreate();
        x.Ext.init(this);                   // 初始化
        x.Ext.setDebug(true);               //日志输出
    }
}

在manifest文件中,用name来引用此类,这样就可以在所有的这个app中注入。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.bazi.myapplication">

    <application
        android:name=".MyApp"                         //关键引入类名
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

3.三个注解文件,第一个是主布局,第二个是控件,第三个是控件方法。

在布局文件中,使用@ContentView,在控件上用@ViewInject,在方法上用@Event。

4.在Activity文件中,使用x.view().inject(this);进行注入。

代码如下

@ContentView(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {

    @ViewInject(R.id.btn_test)
    private  Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        x.view().inject(this);                    //注入
    }


    @Event(value = R.id.btn_test,type = View.OnClickListener.class)
    private  void btn_method(View view){

        Toast.makeText(getApplicationContext(),"ahahahahah",Toast.LENGTH_LONG).show();
    }
}

布局文件如下

<Button android:id="@+id/btn_test"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:text="test tt"
/>
   

--------------------------------------------------------

主要碰到的难点有两个,一是在gradle中,开始用的implementation 不是用的api,导致导包不正常。

二是布局文件没有加@ContentView注解。

 

posted @ 2018-06-07 21:57  琴声清幽  阅读(201)  评论(0编辑  收藏  举报