如上图所示,在做某些应用的时候会遇到这样的需求,需要给出消息的提示,消息可以用推送方式收取,也可以通过接口获取,
在这里记录一下开发中这种小红点提示怎样写
首先看下布局文件
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/pad_height_50"
android:layout_marginLeft="@dimen/pad_height_6"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/pad_height_14" >
<TextView
android:id="@+id/comment_tv_collect"
style="@style/subtitle_text"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:text="收到的评论"
android:textColor="?attr/textColor" />
<TextView
android:id="@+id/txt_commentNum_notify"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/pad_height_10"
android:background="@drawable/notifynum"
android:gravity="center"
android:text="1"
android:textColor="@color/white"
android:textSize="@dimen/pad_text_size_12"
android:visibility="gone" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/activity_personal_right_arrows" />
</LinearLayout>
其次是代码逻辑
txt_commentNum = (TextView) findViewById(R.id.txt_commentNum_notify);
txt_praiseNum = (TextView) findViewById(R.id.txt_priaseNum_notify);
txt_system.setOnClickListener(this);
if (!TextUtils.isEmpty(commentNum) && !commentNum.equals("0")) {
txt_commentNum.setVisibility(View.VISIBLE);
txt_commentNum.setText(commentNum);
isCommentUpdata = true;
} else {
isCommentUpdata = false;
}
if (!TextUtils.isEmpty(praiseNum) && !praiseNum.equals("0")) {
txt_praiseNum.setVisibility(View.VISIBLE);
txt_praiseNum.setText(praiseNum);
ispriaseUpdata = true;
} else {
ispriaseUpdata = false;
}
这是默认的设置
在取得接口数据的时候同样要做数据的同步设置
private void initData() {
String ticket = ssoController.getInstance().getCacheTicket();
String appid = "7";
String url = C.getCommentNumUrl(appid, ticket);
Log.d("zhsy", "notification url===" + url);
HttpGet(url);
}
private void HttpGet(final String serverUrl) {
new Thread() {
@Override
public void run() {
try {
String serverData = httpInstance.getInstance().doHttpGet(serverUrl);
numbean = httpInstance.getInstance().numBean(serverData);
int codeId = httpInstance.getInstance().getSuccess(serverData);
Log.d("zhsy", "notification serverData===" + serverData);
switch (codeId) {
case 100:
handler.sendEmptyMessage(0);
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
public void handleMessage(Message message) {
switch (message.what) {
case 0:
if (numbean.reply_msg!=null&&!numbean.reply_msg.equals("0")) {
if (numbean.reply_msg.length()>3) {
commentNum = 99+"";
txt_commentNum.setVisibility(View.VISIBLE);
txt_commentNum.setText(commentNum+"+");
isCommentUpdata = true;
}else{
commentNum = numbean.reply_msg;
txt_commentNum.setVisibility(View.VISIBLE);
txt_commentNum.setText(commentNum);
isCommentUpdata = true;
}
}else {
isCommentUpdata = false;
}
if (numbean.zan_msg!=null&&!numbean.zan_msg.equals("0")) {
if (numbean.zan_msg.length()>3) {
praiseNum = 99+"";
txt_praiseNum.setVisibility(View.VISIBLE);
txt_praiseNum.setText(praiseNum+"+");
ispriaseUpdata = true;
}else{
praiseNum = numbean.zan_msg;
txt_praiseNum.setVisibility(View.VISIBLE);
txt_praiseNum.setText(praiseNum);
ispriaseUpdata = true;
}
}else {
ispriaseUpdata = false;
}
break;
default:
break;
}
}
};
这样,就好啦