package com.michael.doubanonline.base;
import android.content.Intent;
import android.os.Bundle;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.SubMenu;
import com.actionbarsherlock.widget.ShareActionProvider;
import com.actionbarsherlock.widget.ShareActionProvider.OnShareTargetSelectedListener;
import com.michael.doubanonline.R;
import com.michael.doubanonline.util.L;
import com.michael.doubanonline.util.ToastUtil;
/**
* ActionBar上面带有分享功能的Activity
*
* */
public class ShareActionBarActivity extends BaseActivity {
private ShareActionProvider mShareActionProvider;
private String subject;
private String content;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
/** 刷新 */
MenuItem menuRefresh;
/** 分享 */
MenuItem menuShare;
/** 参加了该活动*/
MenuItem subItemCamera;
/** 参加了该活动*/
MenuItem subItemGallery;
/** 参加了该活动*/
MenuItem subItemJoin;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.refresh_share_camera_items, menu);
//刷新
menuRefresh = menu.findItem(R.id.menu_refresh);
menuRefresh.setActionView(R.layout.layout_menu_item_refresh);// 设置为一个ProgressBar
setRefreshState(false);
//分享
mShareActionProvider = (ShareActionProvider) menu.findItem(
R.id.menu_share).getActionProvider();
mShareActionProvider.setShareHistoryFileName(null);// 最经常被使用到的,会记录在这里,首先将这个设置为null(1)
mShareActionProvider.setShareIntent(getDefaultShareIntent());
mShareActionProvider
.setOnShareTargetSelectedListener(new OnShareTargetSelectedListener() {// 并且需要设置这个监听器,自己去启动Intent,就不会被记录到history了(2)
@Override
public boolean onShareTargetSelected(
ShareActionProvider source, Intent intent) {
ShareActionBarActivity.this.startActivity(intent);
return true;
}
});
//TODO 因为没有接口,无法实现,所以隐藏掉
menu.findItem(R.id.menu_camera).setVisible(false);
//是否已经参加了这个活动
SubMenu subMenu = menu.findItem(R.id.menu_camera).getSubMenu();
subItemCamera = subMenu.findItem(R.id.sub_item_camera);
subItemCamera.setEnabled(false);
subItemGallery = subMenu.findItem(R.id.sub_item_photo);
subItemGallery.setEnabled(false);
subItemJoin = subMenu.findItem(R.id.sub_item_join);
subItemJoin.setEnabled(false);
return super.onCreateOptionsMenu(menu);// 设置为不可点击
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.sub_item_camera:
ToastUtil.show("照相");
break;
case R.id.sub_item_photo:
ToastUtil.show("照片");
break;
case R.id.sub_item_join:
ToastUtil.show("参加");
break;
}
return true;
}
/**
* 处理ActionBar的返回按钮
* */
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
L.e("onMenuItemSelected", "itemID:" + item.getGroupId()+" "+item.getItemId());
switch (item.getItemId()) {
case 16908332://这里只能先这样写了// TODO
finish();
break;
default:
break;
}
return super.onMenuItemSelected(featureId, item);
}
/**
* 返回手机中具有分享功能的Intent
* */
private Intent getDefaultShareIntent() {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
if (subject != null) {
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
}
if (content != null) {
intent.putExtra(Intent.EXTRA_TEXT, content);
}
return intent;
}
/**
* 设置当前刷新按钮是否可见,true设置为可见
* */
public void setRefreshState(boolean isRefresh) {
if (menuRefresh == null) {
return;
}
if (isRefresh) {
menuRefresh.setVisible(true);
} else {
menuRefresh.setVisible(false);
}
}
/**
* 设置是否已经参加了该活动
* */
public void setHasJoined(boolean hasJoin){
if(hasJoin){
subItemJoin.setEnabled(false);
}else{
subItemJoin.setEnabled(true);
}
}
}