主界面:
public class MainActivity extends AppCompatActivity {
private ListView mylistview;
private int index=1;
private SQLiteDatabase db;
private ArrayList<Sqlitebean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyTheme.settheme(this);
setContentView(R.layout.activity_main);
mylistview = (ListView) findViewById(R.id.mylistview);
ImageView changet = (ImageView) findViewById(R.id.changet);
changet.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyTheme.changetheme(MainActivity.this);
}
});
MySqliteclass sqliteclass = new MySqliteclass(this);
db = sqliteclass.getWritableDatabase();
boolean b = IntentIf.intentconnection(this);
if (b){
addintentdata();
}else{
list = new ArrayList<>();
Cursor cursor = db.query("locallist", null, null, null, null, null, null);
while(cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex("name"));
String photourl = cursor.getString(cursor.getColumnIndex("photourl"));
Sqlitebean sqlitebean = new Sqlitebean(name, photourl);
list.add(sqlitebean);
}
mylistview.setAdapter(new Myadapter(list));
}
mylistview.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
int last = view.getLastVisiblePosition();
if (scrollState==SCROLL_STATE_IDLE){
if (last==view.getCount()-1){
if (index>2){
index=1;
}else{
++index;
}
addintentdata();
}
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
}
private void addintentdata() {
new AsyncTask<String,Void,String>(){
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (s==null){
return;
}
Gson gson = new Gson();
MyGsonData myGsonData = gson.fromJson(s, MyGsonData.class);
List<MyGsonData.DataBean> data = myGsonData.getData();
ContentValues values=new ContentValues();
ArrayList<Sqlitebean> arr = new ArrayList<>();
for (MyGsonData.DataBean bean :data) {
String news_title = bean.getNews_title();
String pic_url = bean.getPic_url();
Sqlitebean sqlitebean = new Sqlitebean(news_title, pic_url);
arr.add(sqlitebean);
values.put("name",news_title);
values.put("photourl",pic_url);
db.insert("locallist",null,values);
}
mylistview.setAdapter(new Myadapter(arr));
}
@Override
protected String doInBackground(String... params) {
try {
String s=params[0];
URL url=new URL(s);
HttpURLConnection http= (HttpURLConnection) url.openConnection();
http.setRequestMethod("GET");
http.setConnectTimeout(5000);
http.setReadTimeout(5000);
int code = http.getResponseCode();
if (code==200){
InputStream inputStream = http.getInputStream();
ByteArrayOutputStream bo=new ByteArrayOutputStream();
int len=0;
byte[] bytes=new byte[1024];
while ((len=inputStream.read(bytes))!=-1){
bo.write(bytes,0,len);
}
inputStream.close();
bo.close();
return bo.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute("http://api.expoon.com/AppNews/getNewsList/type/+"+index+"+/p/");
}
private class Myadapter extends BaseAdapter {
private List<Sqlitebean> list;
DisplayImageOptions options=new DisplayImageOptions.Builder()
.showImageOnLoading(R.mipmap.ic_launcher)
.build();
public Myadapter(List<Sqlitebean> list) {
this.list = list;
}
@Override
public int getCount() {
return list!=null?list.size():0;
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
viewholder viewholder=null;
if (convertView==null){
convertView=View.inflate(MainActivity.this,R.layout.mylist_item,null);
viewholder=new viewholder();
viewholder.img= (ImageView) convertView.findViewById(R.id.list_img);
viewholder.tvtitle= (TextView) convertView.findViewById(R.id.list_tv);
convertView.setTag(viewholder);
}else{
viewholder= (MainActivity.viewholder) convertView.getTag();
}
viewholder.tvtitle.setText(list.get(position).getName());
ImageLoader.getInstance().displayImage(list.get(position).getUrl(),viewholder.img,options);
return convertView;
}
}
class viewholder{
ImageView img;
TextView tvtitle;
}
}