implements PullToRefreshBase.OnRefreshListener2<ListView> {
private PullToRefreshListView mPtrLv;
private String path = "http://app.vmoiver.com/apiv3/post/getPostInCate?cateid=0&p=";
private List<FilmBean.DataBean> mBeans;
private LvAdapter mAdapter;
private int index = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
getData(true);
}
private void getData(final boolean isRefresh) {
Toast.makeText(this, "index" + index, Toast.LENGTH_SHORT).show();
Volley.newRequestQueue(this)
.add(new JsonObjectRequest(Request.Method.GET, path + index, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
List<FilmBean.DataBean> beans = new Gson()
.fromJson(response.toString(), FilmBean.class).getData();
if (isRefresh) {
mBeans.clear();
mBeans = beans;
} else {
mBeans.addAll(beans);
}
mAdapter.notifyData(mBeans);
mPtrLv.onRefreshComplete();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Error", error.getMessage().toString());
}
}));
}
private void initView() {
mPtrLv = findViewById(R.id.ptr_lv);
mBeans = new ArrayList<>();
mAdapter = new LvAdapter(mBeans, this);
mPtrLv.setAdapter(mAdapter);
mPtrLv.setOnRefreshListener(this);
mPtrLv.setMode(PullToRefreshBase.Mode.BOTH);
}
@Override
public void onPullDownToRefresh(PullToRefreshBase pullToRefreshBase) {
index = 1;
getData(true);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase pullToRefreshBase) {
index++;
getData(false);
}
}
---------------------------------------------------------------------------------------------------------
public class LvAdapter extends BaseAdapter {
private List<FilmBean.DataBean> mBeans;
private Context mContext;
public LvAdapter(List<FilmBean.DataBean> beans, Context context) {
mBeans = beans;
mContext = context;
}
public void notifyData(List<FilmBean.DataBean> beans){
mBeans = beans;
notifyDataSetChanged();
}
@Override
public int getCount() {
return mBeans.size();
}
@Override
public Object getItem(int i) {
return mBeans.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder vh;
if (view == null) {
vh = new ViewHolder();
view = LayoutInflater.from(mContext).inflate(R.layout.lv_item, viewGroup, false);
vh.img = view.findViewById(R.id.item_img);
vh.tv = view.findViewById(R.id.item_tv);
view.setTag(vh);
} else {
vh = (ViewHolder) view.getTag();
}
Glide.with(mContext).load(mBeans.get(i).getImage()).into(vh.img);
vh.tv.setText(mBeans.get(i).getTitle());
return view;
}
static class ViewHolder {
ImageView img;
TextView tv;
}
}
-----------------------------------------------------------------------------------------
@Entity
public class DaoBean {
private String img;
private String title;
@Generated(hash = 1826550138)
public DaoBean(String img, String title) {
this.img = img;
this.title = title;
}
@Generated(hash = 405743142)
public DaoBean() {
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
----------------------------------------------------------------------------------
public class MyContentProvider extends ContentProvider {
String path = "content://com.bwie.weekexam03_demo/film";
SQLiteDatabase mDb;
@Override
public boolean onCreate() {
MySQLiteOpenHelper helper = new MySQLiteOpenHelper(getContext());
mDb = helper.getWritableDatabase();
return false;
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, @Nullable String[] strings, @Nullable String s, @Nullable String[] strings1, @Nullable String s1) {
Cursor cursor = mDb.query("film", strings, s, strings1, null, null, s1);
return cursor;
}
@Nullable
@Override
public String getType(@NonNull Uri uri) {
return null;
}
@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) {
long insert = mDb.insert("film", null, contentValues);
Uri uri1 = ContentUris.withAppendedId(Uri.parse(path), insert);
return uri1;
}
@Override
public int delete(@NonNull Uri uri, @Nullable String s, @Nullable String[] strings) {
return 0;
}
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues contentValues, @Nullable String s, @Nullable String[] strings) {
return 0;
}
}
---------------------------------------------------------------------------------------
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
public static final String DB_NAME = "film.db";
public static final int DB_VERSION = 1;
public MySQLiteOpenHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("create table film(_id integer primary key autoincrement," +
"img text," +
"title text)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
----------------------------------------------------------------------------------------------
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<provider
android:authorities="com.bwie.weekexam03_demo"
android:name=".MyContentProvider"
android:exported="true"
android:enabled="true"/>
</application>
-------------------------------------------------------------------------
resolver*******
public class MainActivity extends AppCompatActivity {
private ContentResolver mResolver;
private String path = "content://com.bwie.weekexam03_demo/film";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mResolver = getContentResolver();
// 添加数据
ContentValues values = new ContentValues();
values.put("key", "value");
values.put("key", "value");
values.put("key", "value");
mResolver.insert(Uri.parse(path),values);
// 查询数据
Cursor cursor = mResolver.query(Uri.parse(path),
null, null, null, null);
while (cursor.moveToNext()) {
cursor.getColumnIndex("name");
}
}
}