今天我们讲下ActionBar中的分享功能,就是在很多客户端的ActionBar的右边都有的分享的功能。
在menu文件夹下的main.xml文件中定义以下属性:这里我们使用android:actionProviderClass="android.widget.ShareActionProvider"方法来获得
系统自带的分享功能
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/share"
android:actionProviderClass="android.widget.ShareActionProvider"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="分享"/>
<!-- 使用actionProviderClass 添加系统自带的分享 -->
</menu>
接下来是在MainActivity中的具体实现:
package com.example.share;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ShareActionProvider;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@SuppressLint("NewApi")
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
// 获得菜单中的条目
MenuItem item = menu.findItem(R.id.share);
// 获得ShareActionProvider对象
ShareActionProvider provider = (ShareActionProvider) item
.getActionProvider();
// 定义一个意图对象
Intent shareIntent = new Intent();
// 设置意图动作
shareIntent.setAction(Intent.ACTION_SEND);
// 设置分享的类型,"text/*"是分享文本,分享图片使用"image/*"
shareIntent.setType("text/*");
// 设置分享的数据
shareIntent.putExtra(Intent.EXTRA_TEXT, "这里是分享的数据");
// 启动意图对象
provider.setShareIntent(shareIntent);
return true;
}
}
运行结果: