bomb android实战,android 仿qq app源码下载(bmob)

这是一个Android应用的MainActivity实现,包括界面初始化、按钮点击事件处理、聊天消息和邀请通知的监听。使用了BmobChatManager和BmobNotifyManager进行消息管理和通知,同时有小圆点提示未读消息。当接收到新消息或邀请时,会更新界面并显示提示。
摘要由CSDN通过智能技术生成

【实例简介】

【实例截图】

817ae62ae0d785e17b71f0d9437be5a9.png

b6046746212aaae9a8a5a7d62711986f.jpg

0cf74d592fdc6feb0f2945f10b092173.png

【核心代码】

package com.bmob.im.demo.ui;

import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentTransaction;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import cn.bmob.im.BmobChatManager;

import cn.bmob.im.BmobNotifyManager;

import cn.bmob.im.bean.BmobInvitation;

import cn.bmob.im.bean.BmobMsg;

import cn.bmob.im.db.BmobDB;

import cn.bmob.im.inteface.EventListener;

import com.bmob.im.demo.CustomApplcation;

import com.bmob.im.demo.MyMessageReceiver;

import com.bmob.im.demo.R;

import com.bmob.im.demo.ui.fragment.ContactFragment;

import com.bmob.im.demo.ui.fragment.RecentFragment;

import com.bmob.im.demo.ui.fragment.SettingsFragment;

/**

* 登陆

* @ClassName: MainActivity

* @Description: TODO

* @author smile

* @date 2014-5-29 下午2:45:35

*/

public class MainActivity extends ActivityBase implements EventListener{

private Button[] mTabs;

private ContactFragment contactFragment;

private RecentFragment recentFragment;

private SettingsFragment settingFragment;

private Fragment[] fragments;

private int index;

private int currentTabIndex;

ImageView iv_recent_tips,iv_contact_tips;//消息提示

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

initTab();

}

private void initView(){

mTabs = new Button[3];

mTabs[0] = (Button) findViewById(R.id.btn_message);

mTabs[1] = (Button) findViewById(R.id.btn_contract);

mTabs[2] = (Button) findViewById(R.id.btn_set);

iv_recent_tips = (ImageView)findViewById(R.id.iv_recent_tips);

iv_contact_tips = (ImageView)findViewById(R.id.iv_contact_tips);

mTabs[0].setSelected(true);

}

private void initTab(){

contactFragment = new ContactFragment();

recentFragment = new RecentFragment();

settingFragment = new SettingsFragment();

fragments = new Fragment[] {recentFragment, contactFragment, settingFragment };

// 添加显示第一个fragment

getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, recentFragment).

add(R.id.fragment_container, contactFragment).hide(contactFragment).show(recentFragment).commit();

}

/**

* button点击事件

* @param view

*/

public void onTabSelect(View view) {

switch (view.getId()) {

case R.id.btn_message:

index = 0;

break;

case R.id.btn_contract:

index = 1;

break;

case R.id.btn_set:

index = 2;

break;

}

if (currentTabIndex != index) {

FragmentTransaction trx = getSupportFragmentManager().beginTransaction();

trx.hide(fragments[currentTabIndex]);

if (!fragments[index].isAdded()) {

trx.add(R.id.fragment_container, fragments[index]);

}

trx.show(fragments[index]).commit();

}

mTabs[currentTabIndex].setSelected(false);

//把当前tab设为选中状态

mTabs[index].setSelected(true);

currentTabIndex = index;

}

@Override

protected void onResume() {

// TODO Auto-generated method stub

super.onResume();

//小圆点提示

if(BmobDB.create(this).hasUnReadMsg()){

iv_recent_tips.setVisibility(View.VISIBLE);

}else{

iv_recent_tips.setVisibility(View.GONE);

}

if(BmobDB.create(this).hasNewInvite()){

iv_contact_tips.setVisibility(View.VISIBLE);

}else{

iv_contact_tips.setVisibility(View.GONE);

}

MyMessageReceiver.ehList.add(this);// 监听推送的消息

//清空

MyMessageReceiver.mNewNum=0;

//取消通知栏

BmobNotifyManager.getInstance(this).cancelNotify();

}

@Override

protected void onPause() {

// TODO Auto-generated method stub

super.onPause();

MyMessageReceiver.ehList.remove(this);// 取消监听推送的消息

}

@Override

public void onMessage(BmobMsg message) {

// TODO Auto-generated method stub

// 声音提示

boolean isAllow = CustomApplcation.getInstance().getSpUtil().isAllowVoice();

if(isAllow){

CustomApplcation.getInstance().getMediaPlayer().start();

}

iv_recent_tips.setVisibility(View.VISIBLE);

// 存储接收到的消息

BmobChatManager.getInstance(this).saveReceiveMessage(message);

if(currentTabIndex==0){

//当前页面如果为会话页面,刷新此页面

if(recentFragment != null){

recentFragment.refresh();

}

}

}

@Override

public void onNetChange(boolean isNetConnected) {

// TODO Auto-generated method stub

if(isNetConnected){

ShowToast(R.string.network_tips);

}

}

@Override

public void onAddUser(BmobInvitation message) {

// TODO Auto-generated method stub

// 声音提示

boolean isAllow = CustomApplcation.getInstance().getSpUtil().isAllowVoice();

if(isAllow){

CustomApplcation.getInstance().getMediaPlayer().start();

}

BmobDB.create(this).saveInviteMessage(message);

iv_contact_tips.setVisibility(View.VISIBLE);

if(currentTabIndex==1){

if(contactFragment != null){

contactFragment.refresh();

}

}else{

//同时提醒通知

String tickerText = message.getFromname() "请求添加好友";

BmobNotifyManager.getInstance(this).showNotify(R.drawable.ic_launcher, tickerText, message.getFromname(), tickerText.toString(),NewFriendActivity.class);

}

}

@Override

public void onOffline() {

// TODO Auto-generated method stub

showOfflineDialog(this);

}

private static long firstTime;

/**

* 连续按两次返回键就退出

*/

@Override

public void onBackPressed() {

// TODO Auto-generated method stub

if (firstTime 2000 > System.currentTimeMillis()) {

super.onBackPressed();

} else {

ShowToast("再按一次退出程序");

}

firstTime = System.currentTimeMillis();

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值