xUtils

//activity_main.xml
<RelativeLayout 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"
tools:context="com.bwie.xutils_demo.MainActivity">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_below="@+id/tv"
android:layout_height="match_parent"></ListView>
</RelativeLayout>


//item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="200dp" />
</LinearLayout>


//两个bean类
//Data.java
public class Data {
/**
* ret_code : 200
* ret_msg : ok
* listViewPager : ["https://img10.360buyimg.com/da/jfs/t4747/277/1368712300/170619/35098d7f/58f038e0N9b3a0ca5.jpg","https://img14.360buyimg.com/da/jfs/t4915/21/1427207714/81116/b005bb06/58f08963Ndb295b3c.jpg","https://img13.360buyimg.com/da/jfs/t4651/104/2867456043/68336/99da4c16/58f41eaeN5b614a63.jpg"]
* list : [{"date":"2222","id":2,"pic":"http://p3.pstatp.com/list/190x124/1c19000062675e53b27e|http://p3.pstatp.com/list/190x124/1aa4000a2b8a788b321f|http://p3.pstatp.com/list/190x124/2a3f0000d9a4a6ac884d|http://p1.pstatp.com/list/190x124/2a3c000520bf9b36fdf0","title":"北京的你再忙也要加一下这个投资微信!不然后悔!","type":4},{"date":"5555","id":5,"pic":"http://p3.pstatp.com/list/190x124/26ed0005636b714a9f61|http://p1.pstatp.com/list/190x124/26ee000375da57f8b8b1|http://p3.pstatp.com/list/190x124/26ef0000545531df0dfa|http://p3.pstatp.com/list/190x124/26ef00005463b7a8f958","title":" \n袁世凯临终前,在传位名单上写下三个人的名字,众人看了敬佩不已","type":4},{"date":"7777","id":7,"pic":"http://p3.pstatp.com/list/190x124/213300016c777190f9ed|http://p3.pstatp.com/list/190x124/22ca00011911b0a8061c","title":" \n曾经的歌星,落魄到参加选秀,结果唱一半却被韩红喊停","type":2},{"date":"333","id":12,"pic":"http://p3.pstatp.com/list/190x124/26ed0005636b714a9f61|http://p1.pstatp.com/list/190x124/26ee000375da57f8b8b1|http://p3.pstatp.com/list/190x124/26ef0000545531df0dfa|http://p3.pstatp.com/list/190x124/26ef00005463b7a8f958","title":"童星长大以后对比照,有人大红大紫,有人却流落街头","type":4},{"date":"34323","id":16,"pic":"http://p3.pstatp.com/list/190x124/28820012a2ed870afe9c|http://p9.pstatp.com/list/190x124/28820012a37f01432419","title":"紫谷伊甸园\u201c童心童行\u201d活动开幕啦","type":2},{"date":"","id":17,"pic":"http://s3m.mediav.com/galileo/88d8e16558fa0fd6402fe8daa32f5d44.jpg|http://p3.pstatp.com/list/190x124/289c001c528de064679d","title":"永创佳乐 专业蔬菜大棚/花卉大棚","type":2}]
*/

private int ret_code;
private String ret_msg;
private List<String> listViewPager;
private List<ListBean> list;

public int getRet_code() {
return ret_code;
}

public void setRet_code(int ret_code) {
this.ret_code = ret_code;
}

public String getRet_msg() {
return ret_msg;
}

public void setRet_msg(String ret_msg) {
this.ret_msg = ret_msg;
}

public List<String> getListViewPager() {
return listViewPager;
}

public void setListViewPager(List<String> listViewPager) {
this.listViewPager = listViewPager;
}

public List<ListBean> getList() {
return list;
}

public void setList(List<ListBean> list) {
this.list = list;
}
}



//2 :ListBean
/**
* 类描述:
* 创建人:yekh
* 创建时间:2017/7/6 11:44
*/
@Table(name="news")
public class ListBean {
private String date;
@Column(name = "id",isId = true)
private int id;
@Column(name = "url")
private String pic;
@Column(name = "name")
private String title;
private int type;

public String getDate() {
return date;
}

public void setDate(String date) {
this.date = date;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getPic() {
return pic;
}

public void setPic(String pic) {
this.pic = pic;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public int getType() {
return type;
}

public void setType(int type) {
this.type = type;
}
}



//App.java
public class APP extends Application {

private DbManager.DaoConfig daoConfig;

@Override
public void onCreate() {
super.onCreate();
//初始化xutils
x.Ext.init(this);
//设置日志级别
x.Ext.setDebug(BuildConfig.DEBUG);
daoConfig = new DbManager.DaoConfig()
.setDbName("x.db")
.setDbVersion(1)
.setAllowTransaction(true)
.setTableCreateListener(new DbManager.TableCreateListener() {
@Override
public void onTableCreated(DbManager db, TableEntity<?> table) {
Toast.makeText(APP.this, table.getName(), Toast.LENGTH_SHORT).show();
}
})
.setDbOpenListener(new DbManager.DbOpenListener() {
@Override
public void onDbOpened(DbManager db) {
db.getDatabase().enableWriteAheadLogging();
}
});
}

public DbManager.DaoConfig getDaoConfig() {
return daoConfig;
}
}


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

@ViewInject(R.id.lv)
private ListView lv;
@ViewInject(R.id.tv)
private TextView tv;
private String urlpath = "http://qhb.2dyt.com/Bwei/news";
private APP app;
private DbManager db;
private List<ListBean> list = new ArrayList<>();
private MyAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);

x.view().inject(this);
app = (APP) getApplication();
db = x.getDb(app.getDaoConfig());
initview();

try {
List<ListBean> listBeens = db.findAll(ListBean.class);
if (listBeens != null && listBeens.size() > 0) {
list.addAll(listBeens);
adapter.notifyDataSetChanged();
} else {
loadData();
}
} catch (DbException e) {
e.printStackTrace();
}
}

private void loadData() {
RequestParams params = new RequestParams(urlpath);
params.addQueryStringParameter("page", "1");
params.addQueryStringParameter("type", "5");
params.addQueryStringParameter("postkey", "1503d");
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
Log.e("onSuccess", "onSuccess:" + result);
Data data = new Gson().fromJson(result, Data.class);
list.addAll(data.getList());
adapter.notifyDataSetChanged();

try {
db.save(list);
} catch (DbException e) {
e.printStackTrace();
}
}

@Override
public void onError(Throwable ex, boolean isOnCallback) {

}

@Override
public void onCancelled(CancelledException cex) {

}

@Override
public void onFinished() {

}
});
{

}

}

private void initview() {
tv.setText("xutils demo");
adapter = new MyAdapter();
lv.setAdapter(adapter);
}

@Event(value = R.id.tv)
private void tvOnclick(View v) {
Toast.makeText(MainActivity.this, ((TextView) v).getText(), Toast.LENGTH_SHORT).show();
}

class MyAdapter extends BaseAdapter {
ImageOptions options = new ImageOptions.Builder()
.setSize(300, 400)
.setFailureDrawableId(R.mipmap.ic_launcher)
.setLoadingDrawableId(R.mipmap.ic_launcher)
.setRadius(10)
.build();

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = View.inflate(MainActivity.this, R.layout.item, null);
holder = new ViewHolder();

x.view().inject(holder, convertView);

convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(list.get(position).getTitle());
String imageUrl = list.get(position).getPic().split("\\|")[0];
x.image().bind(holder.image, imageUrl, options);

return convertView;
}

class ViewHolder {
@ViewInject(R.id.title)
TextView title;
@ViewInject(R.id.image)
ImageView image;
}
}
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值