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>