33
This commit is contained in:
@@ -0,0 +1,264 @@
|
||||
package cn.shangyu.gdxzExpert.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.gyf.immersionbar.ImmersionBar;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.shangyu.gdxzExpert.R;
|
||||
import cn.shangyu.gdxzExpert.adapter.NewsAdapter;
|
||||
import cn.shangyu.gdxzExpert.base.BaseActivity;
|
||||
import cn.shangyu.gdxzExpert.bean.NewListBean;
|
||||
import cn.shangyu.gdxzExpert.bean.NewListBean.NewsList;
|
||||
import cn.shangyu.gdxzExpert.http.OnCallBackFromNet;
|
||||
import cn.shangyu.gdxzExpert.pulltorefreshview.PullToRefreshBase;
|
||||
import cn.shangyu.gdxzExpert.pulltorefreshview.PullToRefreshBase.Mode;
|
||||
import cn.shangyu.gdxzExpert.pulltorefreshview.PullToRefreshBase.OnRefreshListener2;
|
||||
import cn.shangyu.gdxzExpert.pulltorefreshview.PullToRefreshListView;
|
||||
import cn.shangyu.gdxzExpert.utils.CommonUtil;
|
||||
import cn.shangyu.gdxzExpert.utils.GsonTools;
|
||||
import cn.shangyu.gdxzExpert.utils.SharePrefUtil;
|
||||
import cn.shangyu.gdxzExpert.utils.StringUtil;
|
||||
import cn.shangyu.gdxzExpert.utils.ToastUtil;
|
||||
import cn.shangyu.gdxzExpert.utils.Url;
|
||||
import cn.shangyu.gdxzExpert.widget.LoadingPage.ResultState;
|
||||
|
||||
public class SearchNewsActivity extends BaseActivity implements
|
||||
OnCallBackFromNet, OnItemClickListener {
|
||||
private PullToRefreshListView ptrLv;
|
||||
private LinearLayout ll_empty;
|
||||
private TextView tv_empty_msg;
|
||||
private int page = 1;
|
||||
private String searchStr;
|
||||
private SearchNewsActivity mActivity;
|
||||
private ArrayList<NewsList> newsList = new ArrayList<NewsList>();
|
||||
private NewsAdapter newsAdapter;
|
||||
|
||||
@Override
|
||||
public void setTitle() {
|
||||
// TODO Auto-generated method stub
|
||||
top_title.setText("肝胆新闻");
|
||||
if(CommonUtil.BigModule())
|
||||
{
|
||||
top_title.setTextSize(23);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateSuccessedView() {
|
||||
// TODO Auto-generated method stub
|
||||
ImmersionBar.with(this).keyboardEnable(true).statusBarDarkFont(true).titleBar(mToolbar).init();
|
||||
View view;
|
||||
if(CommonUtil.BigModule())
|
||||
{
|
||||
view = View.inflate(ct, R.layout.activity_search_news_big, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = View.inflate(ct, R.layout.activity_search_news, null);
|
||||
}
|
||||
|
||||
mActivity = this;
|
||||
// 下拉刷新的listview控件
|
||||
ptrLv = (PullToRefreshListView) view.findViewById(R.id.lv_item_news);
|
||||
// 空布局,处理
|
||||
ll_empty = (LinearLayout) view.findViewById(R.id.ll_empty);
|
||||
tv_empty_msg = (TextView) view.findViewById(R.id.tv_empty_msg);
|
||||
// 设置空的提示信息,默认是“暂时没有数据”
|
||||
tv_empty_msg.setText("暂无肝胆新闻");
|
||||
ptrLv.setMode(Mode.BOTH);
|
||||
// 得到实际的ListView 设置点击
|
||||
ptrLv.getRefreshableView().setOnItemClickListener(this);
|
||||
|
||||
setLastUpdateTime();
|
||||
ptrLv.setOnRefreshListener(new OnRefreshListener2() {
|
||||
|
||||
@Override
|
||||
public void onPullDownToRefresh(PullToRefreshBase refreshView) {
|
||||
// 加载顶部新闻
|
||||
page = 1;
|
||||
getNewsList();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPullUpToRefresh(PullToRefreshBase refreshView) {
|
||||
page++;
|
||||
getNewsList();
|
||||
|
||||
// getNewsList(Url.getNewsList, false, false, page);
|
||||
}
|
||||
});
|
||||
initIntent();
|
||||
return view;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
// TODO Auto-generated method stub
|
||||
super.onResume();
|
||||
String newsuuid = SharePrefUtil
|
||||
.getString(mActivity, "callnewsUuid", "");
|
||||
if (newsList != null) {
|
||||
if (!newsuuid.equals("")) {
|
||||
|
||||
for (int i = 0; i < newsList.size(); i++) {
|
||||
if (newsList.get(i).getUuid().equals(newsuuid)) {
|
||||
|
||||
newsList.get(i).setReadnum(
|
||||
SharePrefUtil.getString(mActivity,
|
||||
"callnewsread", ""));
|
||||
newsList.get(i).setAgreenum(
|
||||
SharePrefUtil.getString(mActivity,
|
||||
"callnewsagree", ""));
|
||||
}
|
||||
}
|
||||
if (newsAdapter != null) {
|
||||
// newsList.addAll(bean1.data);
|
||||
newsAdapter.getDatas(newsList);
|
||||
newsAdapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
SharePrefUtil.clear(mActivity, "callnewsUuid");
|
||||
}
|
||||
|
||||
public void initIntent() {
|
||||
Intent getintent = getIntent();
|
||||
searchStr = getintent.getStringExtra("search");
|
||||
getNewsList();
|
||||
|
||||
}
|
||||
|
||||
public static final int GET_SEARCH_NEWS_RESULT = 101;
|
||||
|
||||
private void getNewsList() {
|
||||
// TODO Auto-generated method stub
|
||||
Map<String, String> param = new HashMap<String, String>();
|
||||
param.put("page", String.valueOf(page));
|
||||
param.put("keywords", searchStr);
|
||||
param.put("type", "1");
|
||||
sendJsonPostParamtoNetSignMD5(Url.getNewsListbykeywordsNew, param,
|
||||
GET_SEARCH_NEWS_RESULT, mActivity);
|
||||
}
|
||||
|
||||
private void setLastUpdateTime() {
|
||||
String text = CommonUtil.getStringDate();
|
||||
ptrLv.getLoadingLayoutProxy().setLastUpdatedLabel(text);
|
||||
}
|
||||
|
||||
private void onLoaded() {
|
||||
dismissLoadingProgress();
|
||||
ptrLv.onRefreshComplete();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ResultState onLoad() {
|
||||
// TODO Auto-generated method stub
|
||||
return ResultState.STATE_SUCCESSED;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processClick(View v) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position,
|
||||
long id) {
|
||||
// TODO Auto-generated method stub
|
||||
NewsList news = newsList.get(position-1);
|
||||
|
||||
Intent intent = new Intent(mActivity, NewsDetailActivity.class);
|
||||
intent.putExtra("url", Url.urlHtml + news.path);
|
||||
// intent.putExtra("title", news.title);
|
||||
intent.putExtra("title", "新闻详情");
|
||||
intent.putExtra("newsuuid", news.uuid);
|
||||
intent.putExtra("newsagreenum", news.agreenum);
|
||||
intent.putExtra("newsreadnum", news.readnum);
|
||||
intent.putExtra("newsTitle", news.title);
|
||||
intent.putExtra("summary", news.summary);
|
||||
intent.putExtra("imageUrl", Url.urlHtml + news.headImg);
|
||||
intent.putExtra("flag", 3);
|
||||
mActivity.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCallbackFromThread(String resultJson) {
|
||||
// TODO Auto-generated method stub
|
||||
processData(resultJson);
|
||||
|
||||
}
|
||||
|
||||
NewListBean bean1;
|
||||
|
||||
public void processData(String result) {
|
||||
bean1 = GsonTools.fromGsonToBean(result, NewListBean.class);// 测试的NewsListBean
|
||||
if (StringUtil.isOneToCode(bean1.code)) {
|
||||
ToastUtil.showToast(bean1.message);
|
||||
// 显示空布局
|
||||
ptrLv.setEmptyView(ll_empty);
|
||||
// 完成刷新
|
||||
onLoaded();
|
||||
return;
|
||||
}
|
||||
// 是否是刷新,还是加载更多
|
||||
if (page == 1) {
|
||||
// 初始化新闻
|
||||
newsList.clear();
|
||||
// 数据为空
|
||||
if (bean1.data == null || bean1.data.size() == 0) {
|
||||
// 显示空布局
|
||||
ptrLv.setEmptyView(ll_empty);
|
||||
// 完成刷新
|
||||
onLoaded();
|
||||
return;
|
||||
} else {
|
||||
newsList.addAll(bean1.data);
|
||||
}
|
||||
} else {
|
||||
newsList.addAll(bean1.data);
|
||||
}
|
||||
// 更新新闻
|
||||
if (newsAdapter == null) {
|
||||
newsAdapter = new NewsAdapter(mActivity);
|
||||
newsAdapter.getDatas(newsList);
|
||||
ptrLv.getRefreshableView().setAdapter(newsAdapter);
|
||||
} else {
|
||||
newsAdapter.getDatas(newsList);
|
||||
newsAdapter.notifyDataSetChanged();
|
||||
}
|
||||
// 完成刷新
|
||||
onLoaded();
|
||||
// 得到总页码数
|
||||
int totalPage = bean1.totalPage;
|
||||
// 是否有更多
|
||||
if (totalPage <= 1 || totalPage < page) {
|
||||
if (page != 1) {
|
||||
ToastUtil.showToast("没有更多新闻了");
|
||||
}
|
||||
ptrLv.setMode(Mode.PULL_FROM_START);
|
||||
} else {
|
||||
ptrLv.setMode(Mode.BOTH);
|
||||
}
|
||||
setLastUpdateTime();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCallBackFromThread(String resultJson, int resultCode) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user