您的位置:首页 > 移动开发 > Android开发

Android 点击Button更新接口数据刷新页面状态

2015-12-05 16:58 405 查看
1、当我们使用View的点击事件,请求接口数据并更新数据,使ListView的状态发生改变(如文字颜色,图片样式),代表功能有一键阅读消息,签到记录数据列表。当我们点击view事件,①请求更新数据接口

②请求数据成功后获取数据内容 ③ 先清除集合数据 再在获取内容后设置适配器,刷新适配器

Acitivity界面`

package com.renqidai.android.ui;

import android.content.Intent;

import android.os.Bundle;

import android.text.Html;

import android.util.Log;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.TextView;

import com.andexert.library.RippleView;

import com.renqidai.android.R;

import com.renqidai.android.constants.UrlConsts;

import com.renqidai.android.pojo.Latter;

import com.renqidai.android.pojo.UserInfo;

import com.renqidai.android.task.PostRequestTask;

import com.renqidai.android.task.TaskExecutor;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.ArrayList;

import java.util.HashMap;

/**

* Created by SONY-SONG on 2015/3/30.

*/

public class LatterActivity extends BaseActivity implements AdapterView.OnItemClickListener, View.OnClickListener {

public static final String TAG = LatterActivity.class.getSimpleName();

private ListView lv_latters;
private ImageView iv_latter;
private RippleView back;
private TextView title_name;
private ArrayList<Latter> latters = new ArrayList<>();
private LatterAdapter adapter;
private UserInfo info;
private TextView readAll;
private RippleView readAllData;
private LatterActivity activity;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_latter);
activity=this;
if (application.isLogin()) {
info = application.getUserInfo();
} else {
startActivity(new Intent(this, LoginActivity.class));
finish();
}
initViews();
setListeners();
getLatterData();
adapter = new LatterAdapter();
}

@Override
protected void onResume() {
super.onResume();

}

private void initViews() {
title_name = serchViewById(R.id.title);
title_name.setText(getString(R.string.My_message));
lv_latters = serchViewById(R.id.lv_latters);

back = serchViewById(R.id.back);
back.setOnRippleCompleteListener(new RippleView.OnRippleCompleteListener() {
@Override
public void onComplete(RippleView rippleView) {
finish();
overridePendingTransition(R.anim.r2l_in, R.anim.r2l_out);
}
});

readAll = ((TextView) findViewById(R.id.recharge));
readAll.setText("一键全部阅读");
readAllData = ((RippleView) findViewById(R.id.rightripple));
readAllData.setOnClickListener(this);
readAllData.setVisibility(View.VISIBLE);
}


*  //一键阅读点击事件

@Override
public void onClick(View v) {
adapter.notifyDataSetChanged();
HashMap<String, String> params = new HashMap<>();
params.put("token", crypt.encrypt(info.token));
params.put("offset", crypt.iv);
TaskExecutor.getInstance().execute(new PostRequestTask(params, this, UrlConsts.LATTER_READALL) {
@Override
protected void handleResponse(String response) {
Log.e("wu", "一键阅读" + response);
try {
JSONObject object = new JSONObject(response);
int ret = object.getInt("Ret");
if (ret == 0) {
for (int i = 0; i < latters.size(); i++) {
Latter latter = latters.get(i);
if (!latter.isRead) {
HashMap<String, String> params = new HashMap<>();
params.put("token", crypt.encrypt(info.token));
params.put("id", crypt.encrypt(latter.id));
params.put("offset", crypt.iv);
Log.e("zhi", UrlConsts.LATTER_READ + "?token=" + crypt.encrypt(info.token) + "&id=" + latter.id);
TaskExecutor.getInstance().execute(new PostRequestTask(params, activity, UrlConsts.LATTER_READ) {
@Override
protected void handleResponse(String response) {
getLatterData();
}

@Override
protected void handleError() {
super.handleError();
}
});
}
}

}
} catch (JSONException e) {
e.printStackTrace();
}

}

@Override
protected void handleError() {
super.handleError();
}
});
}


private void setListeners() {
lv_latters.setOnItemClickListener(this);

}


//请求数据
public void getLatterData() {
latters.clear();//先要清除集合内容***
HashMap<String, String> params = new HashMap<>();
params.put("token", crypt.encrypt(info.token));
params.put("pageIndex", c
4000
rypt.encrypt(String.valueOf(1)));
params.put("pageSize", crypt.encrypt(String.valueOf(10000)));
params.put("offset", crypt.iv);
showSpotsDialog("加载信件...");
TaskExecutor.getInstance().execute(new PostRequestTask(params, this, UrlConsts.LATTER) {
@Override
protected void handleError() {
closeSpotsDialog();
}

@Override
protected void handleResponse(String response) {
try {
Log.e("LatterActivity",response);
JSONObject obj = new JSONObject(response);
int ret = obj.getInt("Ret");
if (ret == 0) {
JSONArray array = obj.getJSONArray("Data");
for (int i = 0; i < array.length(); i++) {
obj = array.getJSONObject(i);
Latter latter = new Latter();
latter.parsefromJSON(obj.toString());
latters.add(latter);
}
//设置适配器***
lv_latters.setAdapter(adapter);
adapter.notifyDataSetChanged();
} else {
throw new Exception();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeSpotsDialog();
}
}
});
}


View preView;

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (preView != null) {
AdapterHolder preholder = (AdapterHolder) preView.getTag();
preholder.tv_latter_content.setVisibility(View.GONE);
}
final AdapterHolder holder = (AdapterHolder) view.getTag();
if (preView == view) {
holder.tv_latter_content.setVisibility(View.GONE);
preView = null;
} else {
holder.tv_latter_content.setVisibility(View.VISIBLE);
preView = view;
Latter latter = latters.get(position);
if (!latter.isRead) {
//更新内容
HashMap<String, String> params = new HashMap<>();
params.put("token", crypt.encrypt(info.token));
params.put("id", crypt.encrypt(latter.id));
params.put("offset", crypt.iv);
Log.e("zhi", UrlConsts.LATTER_READ+"?token="+crypt.encrypt(info.token) + "&id="  + latter.id);
TaskExecutor.getInstance().execute(new PostRequestTask(params, this, UrlConsts.LATTER_READ) {
@Override
protected void handleResponse(String response) {
Log.e("zhi", response);
holder.iv_is_read.setImageResource(R.drawable.point_gray);
holder.tv_latter_title.setTextColor(LatterActivity.this.getResources().getColor(R.color.latter_title_2));
}

@Override
protected void handleError() {
super.handleError();
}
});
}
}
}


static class AdapterHolder {
ImageView iv_is_read;//消息图片
TextView tv_latter_time;
TextView tv_latter_title;
TextView tv_latter_content;//点击出现内容
}


private class LatterAdapter extends BaseAdapter {
@Override
public int getCount() {
return latters.size();
}

@Override
public Object getItem(int position) {
return latters.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
AdapterHolder holder;
if (convertView == null) {
convertView = View.inflate(LatterActivity.this, R.layout.latter_item, null);
holder = new AdapterHolder();
holder.iv_is_read = (ImageView) convertView.findViewById(R.id.iv_is_read);
holder.tv_latter_time = (TextView) convertView.findViewById(R.id.tv_latter_time);
holder.tv_latter_title = (TextView) convertView.findViewById(R.id.tv_latter_title);
holder.tv_latter_content = (TextView) convertView.findViewById(R.id.tv_latter_content);
convertView.setTag(holder);
} else {
holder = (AdapterHolder) convertView.getTag();
}
Latter latter = latters.get(position);

holder.iv_is_read.setImageResource(latter.isRead ? R.drawable.point_gray : R.drawable.point_red);
holder.tv_latter_title.setTextColor(latter.isRead ? LatterActivity.this.getResources().getColor(R.color.latter_title_2) : LatterActivity.this.getResources().getColor(R.color.latter_title_1));
holder.tv_latter_title.setText(latter.messageTitle);
holder.tv_latter_time.setText(latter.createTime);
holder.tv_latter_content.setText(Html.fromHtml(latter.messageContent));
return convertView;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: