Xutils笔记

来源:互联网 发布:天翼阅读软件 编辑:程序博客网 时间:2024/06/04 19:56
1.Xutils四大功能模块
  1. DbUtils模块:可以访问数据库
  2. ViewUtils模块:可以通过注解的方式来进行初始化控件和对控件的事件绑定
  3. HttpUtils模块:对http网络进行访问
  4. BitmapUtils模块:对图片的加载与缓存
2.使用Xutils之前,需要添加依赖

3.Xutils的使用
  1. 初始化Xutils(要在oncreate中初始化)
x.Ext.init(getApplication());
    2.初始化控件和事件的绑定(取代了通过findViewById()初始化控件)

@ViewInject(R.id.progressBar)
private ProgressBar progressBar;
//绑定点击事件
@Event(value = R.id.btn_downLoad,type = View.OnClickListener.class)

4.源代码
package com.example.xutils;
 
import android.app.DownloadManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
 
import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.view.annotation.Event;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;
 
import java.io.File;
 
public class MainActivity extends AppCompatActivity {
 
@ViewInject(R.id.et_url)
private EditText et_url;
 
@ViewInject(R.id.progressBar)
private ProgressBar progressBar;
 
//绑定点击事件
@Event(value = R.id.btn_downLoad,type = View.OnClickListener.class)
private void download(View v ){
//通过xutils实现文件的下载
String pathutil = et_url.getText().toString().trim();
//设置回调参数
RequestParams params = new RequestParams(pathutil);
 
//设置文件存放的路径
params.setSaveFilePath(getCacheDir().getAbsolutePath()+"/"+"copy.exe");
params.setAutoRename(false);//不能自动命名
x.http().post(params, new Callback.ProgressCallback<File>() {
@Override
public void onWaiting() {
 
}
 
@Override
public void onStarted() {
 
}
 
@Override
public void onLoading(long total, long current, boolean isDownloading) {
 
progressBar.setMax((int) total);
progressBar.setProgress((int) current);
}
 
@Override
public void onSuccess(File result) {
 
Toast.makeText(MainActivity.this, "文件下载成功", Toast.LENGTH_SHORT).show();
}
 
@Override
public void onError(Throwable ex, boolean isOnCallback) {
 
}
 
@Override
public void onCancelled(CancelledException cex) {
 
}
 
@Override
public void onFinished() {
 
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
 
x.Ext.init(getApplication());
x.view().inject(this);
}
}

布局代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.xutils.MainActivity">
 
<EditText
android:id="@+id/et_url"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="http://192.168.0.101:8080/FeiQ.exe" />
 
<Button
android:text="xutils下载"
android:id="@+id/btn_downLoad"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
 
<ProgressBar
style="@android:style/Widget.ProgressBar.Horizontal"
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>



0 0
原创粉丝点击