-
Menu文件夹下代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <!--
系统提供的分享: android:actionProviderClass="包名.类名"
android:actionProviderClass="android.widget.ShareActionProvider"
-->
<item
android:id="@+id/action_shared"
android:orderInCategory="100"
android:showAsAction="always"
android:actionProviderClass="android.widget.ShareActionProvider"
/>
<item
android:id="@+id/action_custom"
android:orderInCategory="100"
android:showAsAction="always"
android:actionProviderClass="com.qf.day15_actionbar_demo3.MyProvider"
/> </menu>- 界面xml代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内涵段子" /> </RelativeLayout> -
MainActivity界面逻辑代码:
package com.qf.day15_actionbar_demo3; import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ShareActionProvider;
import android.widget.TextView; public class MainActivity extends Activity { private TextView tv; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
} @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.action_shared);
ShareActionProvider provider = (ShareActionProvider) item.getActionProvider(); Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");//分享的数据类型 文本
//分享的数据
shareIntent.putExtra(Intent.EXTRA_TEXT, tv.getText().toString().trim()); provider.setShareIntent(shareIntent); return true;
} } -
一个自定义ActionProvider代码:
package com.qf.day15_actionbar_demo3; import android.content.Context;
import android.view.ActionProvider;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast; public class MyProvider extends ActionProvider { private Context context; public MyProvider(Context context) {
super(context);
// TODO Auto-generated constructor stub
this.context = context;
} @Override
@Deprecated
public View onCreateActionView() {
// TODO Auto-generated method stub
TextView tv = new TextView(context); tv.setText("分享"); tv.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "自定义的分享", 0).show();
}
}); return tv;
} }
相关文章
- 代码随想录算法训练营第7天 | 454.四数相加Ⅱ、383.赎金信、15.三数之和、18.四数之和
- 代码随想录算法训练营第七天 | 454.四数相加II ,383. 赎金信 ,15. 三数之和,18. 四数之和
- LeetCode 解题思路 15(Hot 100)-Java代码:
- 15个实用的jQuery代码片
- tls 双向认证 client端代码例子
- Java8的新特性有哪些 举代码例子说明
- 【LeetCode】【算法】15. 三数之和-代码
- 基于双向长短期记忆网络(BiLSTM)的时间序列数据预测,15个输入1个输出,可以更改数据集,MATLAB代码
- HTTP.SYS远程执行代码漏洞分析 (MS15-034 )
- 20140316 window live write 插件 推荐代码高亮插件 构造函数只能用初始化成员列表方式的例子