package me.bell.downapp.activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.fastjson.JSONObject;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.net.URLEncoder;
import java.util.ArrayList;
import me.bell.downapp.R;
import me.bell.downapp.adapter.AppAdapter;
import me.bell.downapp.bean.SearchBean;
import me.bell.downapp.bean.YYBData;
import me.bell.downapp.presenter.HttpPresenter;
import me.bell.downapp.presenter.IHttpView;
public class SearchActivity extends AppCompatActivity implements View.OnClickListener, IHttpView {
private Context mContext;
private LinearLayout _backImg;
private TextView _titleText;
private PullToRefreshListView _mListView;
//传值
private String keyword = "";
//分页参数
private String page = "";
private HttpPresenter presenter = new HttpPresenter(this);
private ArrayList<YYBData> mList = new ArrayList<>();
private AppAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
mContext = SearchActivity.this;
keyword = getIntent().getStringExtra("keyword");
initUI();
presenter.getAppList(getNewUrl());
}
private void initUI() {
_backImg = findViewById(R.id.back_image);
_backImg.setOnClickListener(this);
_titleText = findViewById(R.id.top_title_text);
_titleText.setText("结果");
_mListView = findViewById(R.id.app_list_view);
_mListView.setMode(PullToRefreshBase.Mode.BOTH);
_mListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
mList.clear();
page = "";
presenter.getAppList(getNewUrl());
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
presenter.getAppList(getNewUrl());
}
});
adapter = new AppAdapter(SearchActivity.this, mList);
_mListView.setAdapter(adapter);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.back_image:
finish();
break;
}
}
/**
* 获取处理后的地址
*
* @return
*/
private String getNewUrl() {
try {
return "http://android.myapp.com/myapp/searchAjax.htm?pns="+page+"&sid=&kw=" + URLEncoder.encode(keyword, "utf-8");
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
@Override
public void onHttpResult(String action, String httpResult) {
Log.i("list", httpResult);
mHandler.sendEmptyMessage(0);
if ("error".equals(httpResult)) {
mHandler.sendEmptyMessage(-1);
} else {
SearchBean bean = JSONObject.parseObject(httpResult, SearchBean.class);
if (!bean.isSuccess()) {
mHandler.sendEmptyMessage(-1);
} else {
page = bean.getObj().getPageNumberStack();
Log.e("hhh", "page: " + page);
mList.addAll(bean.getObj().getAppDetails());
mHandler.sendEmptyMessage(1);
}
}
}
MHandler mHandler = new MHandler();
class MHandler extends Handler {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case -1:
Toast.makeText(mContext, "查询结束", Toast.LENGTH_LONG).show();
break;
case 0:
_mListView.onRefreshComplete();
break;
case 1:
adapter.notifyDataSetChanged();
break;
}
}
}
}