1.依赖注入ButterKnife的使用:
导入 在app下的build.gradle中配置 compile 'com.jakewharton:butterknife:7.0.1'
在activity中配置:
在onCreat方法中, setContentView 方法之后初始化:
ButterKnife.bind(this);
使用:
@Bind(R.id.tv_title)
TextView tvTitle;
点击事件:
@OnClick({R.id.tv_title})
public void onClick(View V){
switch(v.getId()){
case R.id.tv_title :
//点击事件
break;
}
}
2.保存用户信息到本地(数据库):
StoreMember { String = StoreMember () { } StoreMember () { (== ) { = StoreMember()} } (Context contextUser memberInfo) {//以文件io流保存下来 { FileOutputStream outStream = context.openFileOutput(Context.)ObjectOutputStream oos = ObjectOutputStream(outStream)oos.writeObject(memberInfo)oos.flush()oos.close()} (IOException e) { e.printStackTrace()} } User (Context context) {//获取信息 User memberInfo = FileInputStream fis = ObjectInputStream ois = { File file = File(context.getFilesDir())(file.exists()) { fis = context.openFileInput()ois = ObjectInputStream(fis)memberInfo = (User) ois.readObject()fis.close()ois.close()}{ } } (Exception e) { } memberInfo} (Context context){//检查是否存在 User user = getMember(context)(user == ){ }{ } } }
在activity中的使用:
初始化:
private User user; user = StoreMember.getInstance().getMember(context);
取出来 user.getId();
存进去:user.setId("XXXXXX");
StoreMember.getInstance().saveMember(this,user);//保存的方法
3.下拉刷新组件:
SwipeToLoadLayout
导入:在app下的build.gradle中配置: compile 'com.github.Aspsine:SwipeToLoadLayout:1.0.3'
xml中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_gray"
android:orientation="vertical">
<include layout="@layout/base_title">
</include>
<com.aspsine.swipetoloadlayout.SwipeToLoadLayout
android:id="@+id/swipeToLoadLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:refresh_complete_to_default_scrolling_duration="500"
app:swipe_style="scale">
<include
android:id="@id/swipe_refresh_header"
layout="@layout/layout_twitter_header" />//头部刷新的布局
<!--<LinearLayout-->
<!--android:id=""-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:orientation="vertical">-->
<android.support.v7.widget.RecyclerView
android:id="@+id/swipe_target"
android:layout_width="match_parent"
android:clipToPadding="false"
android:layout_height="match_parent" />//定义刷新的布局
<!--</LinearLayout>-->
<include
android:id="@id/swipe_load_more_footer"
layout="@layout/layout_classic_footer" />//底部的布局
</com.aspsine.swipetoloadlayout.SwipeToLoadLayout>
</LinearLayout>
其中的布局id @+id/swipeToLoadLayout,刷新头部id @id/swipe_refresh_header,刷新组件的id @+id/swipe_target,底部布局的id @id/swipe_load_more_footer这些都是写死的,不允许更改。
acticity中的使用:
初始化: @Bind(R.id.swipeToLoadLayout)
SwipeToLoadLayout swipeToLoadLayout;
swipeToLoadLayout.setRefreshEnabled(false);//是否能够下拉刷新
swipeToLoadLayout.setLoadMoreEnabled(true);//是否能上拉加载
swipeToLoadLayout.setOnLoadMoreListener(this);//设置刷新事件
() { //加载更多 ++getData()} () {//刷新数据 .clear()= getData()}
在getData方法里 要配置 swipeToLoadLayout.setLoadingMore(false);//清空加载状态
swipeToLoadLayout.setRefreshing(false);//清空刷新状态
共同学习,写下你的评论
评论加载中...
作者其他优质文章