xUtils的4个用法

1.导包


2.自己写一个类继承application

public class xUilts extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //注册
        x.Ext.init(this);

    }
}




3.在androidmanifest使用





4.注册


        //这是只要使用了@ViewInject这个就要写
        x.view().inject(this);



5.这是get请求主要代码

public class BlankFragment extends Fragment {
    private String str="http://baobab.kaiyanapp.com/api/v4/tabs/selected";

    private TextView tv1;
    public BlankFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_blank, container, false);
        tv1= inflate.findViewById(R.id.tv1);
        RequestParams re=new RequestParams(str);
        x.http().get(re, new Callback.CommonCallback<String>() {
            @Override
            public void onSuccess(String s) {
                tv1.setText(s);
            }

            @Override
            public void onError(Throwable throwable, boolean b) {
                tv1.setText("错了");
            }

            @Override
            public void onCancelled(CancelledException e) {
                tv1.setText("取消");
            }

            @Override
            public void onFinished() {

            }
        });

        return inflate;
    }

}




6.get请求的布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="comqq.example.hasee.myapplication.BlankFragment">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView

        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>
</FrameLayout>



7.post的主要代码

public class BlankFragment2 extends Fragment {
    private TextView tv2;
    private String st="http://baobab.kaiyanapp.com/api/v4/tabs/selected";
    //            ?udid=11111&vc=168&vn=3.3.1&deviceModel=Huawei%36&first_channel=eyepetizer_baidu_market&last_channel=eyepetizer_baidu_market&system_version_code=20";
    public BlankFragment2() {
        // Required empty public constructor
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_blank_fragment2, container, false);
        tv2=inflate.findViewById(R.id.tv2);
        RequestParams re=new RequestParams(st);
        re.addBodyParameter("udid","11111");
        re.addBodyParameter("vc","168");
        re.addBodyParameter("vn","3.3.1");
        re.addBodyParameter("deviceModel","Huawei%36");
        re.addBodyParameter("first_channel","eyepetizer_baidu_market");
        re.addBodyParameter("last_channel","eyepetizer_baidu_market");
        re.addBodyParameter("system_version_code","20");
        re.setMultipart(true);
        x.http().post(re, new Callback.CommonCallback<String>() {
            @Override
            public void onSuccess(String s) {
                tv2.setText(s);
            }

            @Override
            public void onError(Throwable throwable, boolean b) {
                tv2.setText("错了啊");
            }

            @Override
            public void onCancelled(CancelledException e) {
               tv2.setText("取消了啊");
            }

            @Override
            public void onFinished() {

            }
        });
        return inflate;
    }

}




8.post请求的布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="comqq.example.hasee.myapplication.BlankFragment2">

    <!-- TODO: Update blank fragment layout -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/tv2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </LinearLayout>

</FrameLayout>



9.图片的主要代码

public class BlankFragment3 extends Fragment {
    String url = "http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg";
    private ImageView iv;
    public BlankFragment3() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_blank_fragment3, container, false);
        iv=inflate.findViewById(R.id.iv1);
        ImageOptions im=new ImageOptions.Builder()
                .setIgnoreGif(false)
                .setFailureDrawableId(R.mipmap.ic_launcher)
                .build();
        //如果想要网络获取的话直接"assets://aacat.gif"把这个给换成地址就行了
        x.image().bind(iv,"assets://aacat.gif",im);
        
        return inflate;
    }

}




10.创建aacat的资源






11.图片布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="comqq.example.hasee.myapplication.BlankFragment3">

    <!-- TODO: Update blank fragment layout -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/iv1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>

</FrameLayout>




11.创建动态图所需要的图片资源





12.这是aaa.xml里面的代码

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/aa1" android:duration="100"/>
    <item android:drawable="@mipmap/aa2" android:duration="100"/>
    <item android:drawable="@mipmap/aa3" android:duration="100"/>
    <item android:drawable="@mipmap/aa4" android:duration="100"/>
    <item android:drawable="@mipmap/aa5" android:duration="100"/>
    <item android:drawable="@mipmap/aa6" android:duration="100"/>
    <item android:drawable="@mipmap/aa7" android:duration="100"/>
    <item android:drawable="@mipmap/aa8" android:duration="100"/>
    <item android:drawable="@mipmap/aa9" android:duration="100"/>
    

</animation-list>



13.动态图布局代码

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="comqq.example.hasee.myapplication.BlankFragment4">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/iv111"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>

</FrameLayout>



14.数据库主要代码

public class DatabaseActivity extends AppCompatActivity {

    @ViewInject(value = R.id.database_lv)
    private ListView lv;

    private DbManager manager   ;    //数据库管理者:用于管理xutils创建好的数据库的
    private DbManager.DaoConfig config;   //数据库设置类信息

    private List<PersonTable> list;

    private DBAdapter  adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_database);
        x.view().inject(this);

        config = DBUtils.getConfig(this);
//       实例化数据库管理对象
        manager = x.getDb(config);

        list = new ArrayList<>();

        List<PersonTable> queryAll = queryAll();
        if (queryAll!=null){
            list.addAll(queryAll);
        }
        adapter = new DBAdapter(this,list);
        lv.setAdapter(adapter);
    }

    /**
     * 查询数据库person表当中所有的内容:
     * findAll:
     * */
    private List<PersonTable> queryAll(){
        try {
            List<PersonTable> personTables = manager.findAll(PersonTable.class);
            return  personTables;
        } catch (DbException e) {
            e.printStackTrace();
        }
        return  null;
    }
    /**
     * 向表中插入数据的方法
     * save
     * */
    private void insertData(PersonTable person){
        try {
            manager.save(person);
        } catch (DbException e) {
            e.printStackTrace();
        }
    }
    /**
     * 修改表中的指定数据
     * update
     * */
    private void updateEntity(int id){
//        获取id表示的对象
        try {
            PersonTable person = manager.findById(PersonTable.class, id);
            person.setSex("女");
            person.setAge(16);
            manager.update(person,"sex","age");
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

    /**
     * 把年龄为15岁的人的名字改为貔貅.
     *
     * */
    public void updateData(){
        KeyValue keyvalue = new KeyValue("name","貔貅");
        try {
            manager.update(PersonTable.class, WhereBuilder.b("age","=",15),keyvalue);
        } catch (DbException e) {
            e.printStackTrace();
        }
    }
    @Event(value = {R.id.id_btn_insert,R.id.id_btn_delete,R.id.id_btn_update})
    private void operateDatabase(View view){
        switch (view.getId()) {
            case R.id.id_btn_insert:
                insertData(new PersonTable(1,"xiaoming",14,"男",1000));
                insertData(new PersonTable("xiaohong",13,"男",5000));
                insertData(new PersonTable("小刚",19,"男",4000));
                insertData(new PersonTable("小丽",29,"男",9000));
                insertData(new PersonTable("麒麟",15,"男",10000));
                insertData(new PersonTable("andy",18,"男",3000));
                insertData(new PersonTable("jack",22,"男",2000));
                list.clear();
                list.addAll(queryAll());
                adapter.notifyDataSetChanged();
                break;
            case R.id.id_btn_update:
//                updateEntity(2);
                updateData();
                list.clear();
                list.addAll(queryAll());
                adapter.notifyDataSetChanged();
                break;
            case R.id.id_btn_delete:
                try {
                    // 删除指定id对应行的数据
                    manager.deleteById(PersonTable.class,7);
//                    删除表中的指定对象
                    PersonTable firstPerson = manager.selector(PersonTable.class).where("sex", "=", "男").where("age", "=", 19).findFirst();
                    manager.delete(firstPerson);

                    manager.delete(PersonTable.class,WhereBuilder.b("age","=","18").and("name","like","an_"));

                    list.clear();
                    list.addAll(queryAll());
                    adapter.notifyDataSetChanged();
                } catch (DbException e) {
                    e.printStackTrace();
                }
                break;
        }


    }
}



15.

public class DBUtils {
    static DbManager.DaoConfig config;

    public static DbManager.DaoConfig getConfig(Context context){
        config = new DbManager.DaoConfig();
        config.setDbName("user.db");    //设置数据库的名称
//        /sdcard/Android/data/com.animee.day01/cache/
        config.setDbDir(context.getExternalCacheDir());
        config.setAllowTransaction(true);
        config.setDbOpenListener(new DbManager.DbOpenListener() {
            @Override
            public void onDbOpened(DbManager dbManager) {
                Log.i("tag","啊,数据库被打开了!!");
            }
        });

        config.setDbUpgradeListener(new DbManager.DbUpgradeListener() {
            @Override
            public void onUpgrade(DbManager dbManager, int i, int i1) {
                Log.i("tag","呀,数据库更新了!!");
            }
        });

        config.setDbVersion(1);
        return config;
    }
}



16.数据库的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.animee.day01.DatabaseActivity">

    <LinearLayout
        android:id="@+id/database_llayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/id_btn_insert"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="插入数据"/>
        <Button
            android:id="@+id/id_btn_update"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="修改数据"/>
        <Button
            android:id="@+id/id_btn_delete"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="删除数据"/>
    </LinearLayout>
    <ListView
        android:id="@+id/database_lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/database_llayout"></ListView>
</RelativeLayout>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值