Android自定义Umeng反馈意见模块

        首先看下面umeng官方提供的,好多开发者都是直接嵌入到自己的应用中,(比如一款微博应用Weeker)我就想说句,你UI做的那样高大上,引用umeng原生太的反馈界面不失您的风格么。
         
       下面我们谈下技术实现,其实很简单,如果用心的朋友就会发现umeng官方文章中其实告诉我们了如何自定义用户反馈UI界面。

          如果不想麻烦的朋友,接下来看下怎么用就好了.
          导入umeng的jar包什么的就不细说,看下代码片段:
package com.wishcard.android.ui;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import com.umeng.fb.FeedbackAgent;
import com.umeng.fb.model.Conversation;
import com.umeng.fb.model.DevReply;
import com.umeng.fb.model.Reply;
import com.umeng.fb.model.UserInfo;
import com.wishcard.android.base.BaseActivity;
import com.wishcard.android.base.R;
import com.wishcard.android.util.ViewUtil;

/***
 * 用户反馈模块
 * 
 * @author jia
 * 
 */
public class FeedBackActivity extends BaseActivity implements OnClickListener,
		Conversation.SyncListener {
	private LinearLayout layout_back;
	private EditText et_feedback_content, et_feedback_contact;
	private Button btn_feedback;

	private Conversation defaultConversation;
	private FeedbackAgent agent;

	@Override
	protected void initView() {
		setContentView(R.layout.feedback);
		layout_back = (LinearLayout) findViewById(R.id.layout_back);

		et_feedback_content = (EditText) findViewById(R.id.et_feedback_content);
		et_feedback_contact = (EditText) findViewById(R.id.et_feedback_contact);
		btn_feedback = (Button) findViewById(R.id.btn_feedback);
	}

	@Override
	protected void setListener() {
		layout_back.setOnClickListener(this);
		btn_feedback.setOnClickListener(this);

	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		agent = new FeedbackAgent(this);

	}

	@Override
	public void onClick(View v) {
		if (v == layout_back)
			finish();
		else if (v == btn_feedback) {
			String content = et_feedback_content.getText().toString().trim();
			String contact = et_feedback_contact.getText().toString().trim();

			if (content.equals("")) {
				ViewUtil.showToast(FeedBackActivity.this,
						R.string.toast_feedback_null);

			} else {
				UserInfo info = new UserInfo();

				Map<String, String> map = info.getContact();
				if (contact == null)
					map = new HashMap<String, String>();
				map.put("plain", contact);
				info.setContact(map);

				agent.setUserInfo(info);// 保存联系方式

				defaultConversation = agent.getDefaultConversation();

				defaultConversation.addUserReply(content);// 用户反馈意见

				defaultConversation.sync(FeedBackActivity.this);
			}

		}
	}

	@Override
	public void onReceiveDevReply(List<DevReply> arg0) {

	}

	@Override
	public void onSendUserReply(List<Reply> arg0) {
		et_feedback_content.setText("");
		et_feedback_contact.setText("");
		ViewUtil.showToast(FeedBackActivity.this, R.string.toast_feedback);
		finish();
	}
}
 代码看起来不难理解吧,其实主要是两个类:Conversation,FeedbackAgent。
Conversation:作用是umeng的发起会话功能,就是发送用户的意见反馈。
FeedbackAgent:作用是记录用户的信息如:电话/QQ/邮箱等。
这样我们就可以自行定义属于自己UI风格了。
   
怎么样,用起来挺方便的吧。这里我没有用会话模式,如果你想用会话模块的话,可以自己看下源码,实现起来应该也不难,我个人认为用户反馈做的简单,大气点最好了,也不用做的那么花哨。个人喜爱吧!!!


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。