package com.example.slidingmenu.yujing.client.activity.letter; import android.app.Dialog; import android.content.ContentValues; import android.content.Context; import android.content.SharedPreferences; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.text.TextUtils; import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; import com.example.slidingmenu.R; import com.example.slidingmenu.yujing.client.application.ClientApplication; import com.example.slidingmenu.yujing.client.database.table.PrivateLetter; import com.example.slidingmenu.yujing.client.network.mode.RequestParam; public class ReplyLetterDialog extends Dialog implements View.OnClickListener{ private Window mWindow; private Button cancel, send; private EditText mEditText; private ContentValues mValues; private SendLetterTask mSendLetterTask; private OnReplyLetterListener mReplyLetterListener; public ReplyLetterDialog(Context context) { super(context); // 获得窗口管理对象 mWindow = this.getWindow(); // 去掉系统默认的对话框背景 mWindow.setBackgroundDrawable(new ColorDrawable(0)); // 获得窗口参数 WindowManager.LayoutParams lp = mWindow.getAttributes(); // 设置对话框显示在屏幕的顶部,默认是现实在屏幕的中心 lp.gravity = Gravity.TOP; // 设置点击对话框外部可以回收对话框 setCanceledOnTouchOutside(true); // 去掉对话框的标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 设置对话框的内容 mWindow.setContentView(R.layout.reply_letter_dialog); } // 下面是几个生命周期函数 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); cancel = (Button) findViewById(R.id.close_dialog); cancel.setOnClickListener(this); send = (Button) findViewById(R.id.send_content); send.setOnClickListener(this); mEditText = (EditText)findViewById(R.id.edit_broadcast); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.send_content: onSendClick(v); break; case R.id.close_dialog: onCancelClick(v); break; default: break; } } public void onSendClick(View v) { String contents = mEditText.getText().toString(); if(TextUtils.isEmpty(contents)) { mEditText.setError(v.getContext().getString(R.string.empty_content)); return; } ContentValues values = getValues(); final String name = values.getAsString(PrivateLetter.name); final String time = String.valueOf((int) (System.currentTimeMillis()/1000)); final String contact = values.getAsString(PrivateLetter.PrivateLetterUID); String[] letter = new String[] { contact, contents, time, name, "baidu.com" }; RequestParam rp = new RequestParam(); SharedPreferences sp = ((ClientApplication)this.getOwnerActivity().getApplication()).getLoginUserInfo(); rp.setUserName(sp.getString(RequestParam.USER_NAME, "")); rp.setPassword(sp.getString(RequestParam.PASSWORD, "")); rp.setRandomKey("1234"); rp.setRequestType(RequestParam.SEND_PRIVATELETTER); rp.setParams(letter); mSendLetterTask = new SendLetterTask(this.getOwnerActivity(), new SendLetterTask.HandleSendLetter() { @Override public void onSendLetterSucc() { if(mReplyLetterListener != null) { mReplyLetterListener.onSendLetterSucc(); } } @Override public void onSendLetterFail() { if(mReplyLetterListener != null) { mReplyLetterListener.onSendLetterFail(); } } }); mSendLetterTask.execute(rp); dismiss(); } public void onCancelClick(View v) { dismiss(); } @Override protected void onStart() { super.onStart(); } @Override protected void onStop() { super.onStop(); } public void setOnReplyLetterListener(OnReplyLetterListener rllistener) { mReplyLetterListener = rllistener; } public interface OnReplyLetterListener{ public void onSendLetterSucc(); public void onSendLetterFail(); } /** * @param mValues the mValues to set */ public void setValues(ContentValues mValues) { this.mValues = mValues; } /** * @return the mValues */ public ContentValues getValues() { return mValues; } }