目前xUtils已经发布到xUtils3,所以,我们就按照xUtils3的规范来开发。xUtils系列框架提供的功能主要有四大模块,ViewUtils模块、BitmapUtils模块、DbUtils模块、HttpUtils模块。本文主要介绍ViewUtils的使用。
一、使用前配置。
使用Android Studio开发时,我们需要在build.gradle文件中添加依赖:
compile 'org.xutils:xutils:3.5.0'
(如果还是使用Eclipse,需要自行下载jar包导入至项目中即可。本篇文章是以Android Studio开发)
并且我们还需要在AndroidManifest.xml文件中添加网络权限,具体权限如下,
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
二、使用。
创建Application,在它的onCreate()方法中添加初始化代码,具体代码如下,
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(false); // 是否输出debug日志,开启debug会影响性能 } }
记得要在AndroidManifest.xml文件中添加我们自定义的MyApplication,代码如下,
<application android:name=".MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" 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>
下面分别介绍这四大模块的使用。
三.ViewUtils模块。
(1).android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定; (2).新的事件绑定方式,使用混淆工具混淆后仍可正常工作; (3).目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
使用注解可以简化许多重复的工作。记得要使用注解功能,需要先初始化注解模块!
1.在Activity中使用注解
在Activity的onCreate()中需要初始化注解框架,具体写法如下,
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); x.view().inject(this);//初始化注解模块 }
加载布局
@ContentView(R.layout.activity_main)
绑定控件
@ViewInject(R.id.tv_msg) TextView mTvMsg; @ViewInject(R.id.btn_start) Button mStartBtn;
事件监听
@Event(value=R.id.btn_start,type = View.OnClickListener.class) private void startLoading(View v){ Toast.makeText(this, "startLoading", Toast.LENGTH_SHORT).show(); }
使用@Event事件注解事,需要注意以下几点
* 1. 方法必须私有限定, * 2. 方法参数形式必须和type对应的Listener接口一致. * 3. 注解参数value支持数组: value={id1, id2, id3} * 4. 其它参数说明见{@link org.xutils.event.annotation.Event}类的说明. * 5. type,可选参数, 默认是View.OnClickListener.class,需要根据实际情况来确定具体的值,例如长按事件,type = View.OnLongClickListener.class.
2.在Fragment中使用注解
在Fragment中初始化注解框架,与Activity稍有不同,
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return x.view().inject(this,inflater,container); }
下面给出Activity全部代码,
@ContentView(R.layout.activity_main) public class MainActivity extends AppCompatActivity { @ViewInject(R.id.tv_msg) TextView mTvMsg; @ViewInject(R.id.btn_start) Button mStartBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); x.view().inject(this); } @Event(value=R.id.btn_start,type = View.OnLongClickListener.class) private void startLoading(View v){ Toast.makeText(this, "startLoading", Toast.LENGTH_SHORT).show(); } }
有关注解使用,就到这儿!如果还想了解更多,可以去xUtils的github上看它们的sample。