匿名项目连载(五)--->发布说说

来源:互联网 发布:猎巫运动知乎 编辑:程序博客网 时间:2024/06/10 03:13

点击左边图片右上角的加号,进行发表说说界面

AtyPublish

package com.jikexueyuan.secret.atys;import com.jikexueyuan.secret.Config;import com.jikexueyuan.secret.R;import com.jikexueyuan.secret.net.Publish;import android.app.Activity;import android.app.ProgressDialog;import android.content.Intent;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class AtyPublish extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.aty_publish);Intent data = getIntent();phone_md5 =data.getStringExtra(Config.KEY_PHONE_MD5);token = data.getStringExtra(Config.KEY_TOKEN);etMsgContent = (EditText) findViewById(R.id.etMsgContent);findViewById(R.id.btnPublish).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {if (TextUtils.isEmpty(etMsgContent.getText())) {Toast.makeText(AtyPublish.this, R.string.message_content_can_not_be_empty, Toast.LENGTH_LONG).show();return;}final ProgressDialog pd = ProgressDialog.show(AtyPublish.this, getResources().getString(R.string.connecting), getResources().getString(R.string.connecting_to_server));/** * 发布消息至服务器端 */new Publish(phone_md5, token, etMsgContent.getText().toString(), new Publish.SuccessCallback() {@Overridepublic void onSuccess() {pd.dismiss();//requestCodesetResult(Config.ACTIVITY_RESULT_NEED_REFRESH);Toast.makeText(AtyPublish.this, R.string.suc_to_publish, Toast.LENGTH_LONG).show();finish();}}, new Publish.FailCallback() {@Overridepublic void onFail(int errorCode) {pd.dismiss();if (errorCode==Config.RESULT_STATUS_INVALID_TOKEN) {startActivity(new Intent(AtyPublish.this, AtyLogin.class));finish();}else{Toast.makeText(AtyPublish.this, R.string.fail_to_publish, Toast.LENGTH_LONG).show();}}});}});}private EditText etMsgContent;private String phone_md5,token;}

new Publish(phone_md5, token, msg, successCallback, failCallback)的实现方法类如下

Publish

package com.jikexueyuan.secret.net;import org.json.JSONException;import org.json.JSONObject;import com.jikexueyuan.secret.Config;public class Publish {/** * 发布说说至服务器端 * @param phone_md5 * @param token * @param msg * @param successCallback * @param failCallback */public Publish(String phone_md5,String token,String msg,final SuccessCallback successCallback,final FailCallback failCallback) {new NetConnection(Config.SERVER_URL, HttpMethod.POST, new NetConnection.SuccessCallback() {@Overridepublic void onSuccess(String result) {try {//{\"status\":1}JSONObject jsonObject = new JSONObject(result);switch (jsonObject.getInt(Config.KEY_STATUS)) {case Config.RESULT_STATUS_SUCCESS:if (successCallback!=null) {successCallback.onSuccess();}break;case Config.RESULT_STATUS_INVALID_TOKEN:if (failCallback!=null) {failCallback.onFail(Config.RESULT_STATUS_INVALID_TOKEN);}break;default:if (failCallback!=null) {failCallback.onFail(Config.RESULT_STATUS_FAIL);}break;}} catch (JSONException e) {e.printStackTrace();if (failCallback!=null) {failCallback.onFail(Config.RESULT_STATUS_FAIL);}}}}, new NetConnection.FailCallback() {@Overridepublic void onFail() {if (failCallback!=null) {failCallback.onFail(Config.RESULT_STATUS_FAIL);}}}, Config.KEY_ACTION,Config.ACTION_PUBLISH,Config.KEY_PHONE_MD5,phone_md5,Config.KEY_TOKEN,token,Config.KEY_MSG,msg);}public static interface SuccessCallback{void onSuccess();}public static interface FailCallback{void onFail(int errorCode);}}

发布后,跳转到说说列表界面重新获取服务器最新数据

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {switch (resultCode) {case Config.ACTIVITY_RESULT_NEED_REFRESH://发布说说后,从新冲服务区获取说说loadMessage();break;default:break;}}


0 0