내비게이션 창에 공유 버튼을 구현하려고합니다. 나는 우리가 이것을 어떻게 구현하는지 확신하지 못한다. 어떤 도움을 주셔서 감사합니다. 이것은 내가 얼마나 멀리 갔는지입니다.Android 탐색 창에서 공유 버튼
메뉴 항목 XML 내가 Xamarin.Android을 사용하고
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single"
android:id="@+id/app">
<item
android:id="@+id/nav_fibonacci"
android:icon="@drawable/ic_cards"
android:title="@string/FibonacciSeriesTabTitle" />
<item
android:id="@+id/nav_tshirt"
android:icon="@drawable/ic_tshirt"
android:title="@string/TShirtSizesTabTitle" />
<item
android:id="@+id/nav_standard"
android:icon="@drawable/ic_cards"
android:title="@string/StandardSeriesTabTitle" />
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings"
android:title="@string/SettingsTitle" />
</group>
<group android:checkableBehavior="single"
android:id="@+id/contact">
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_share"
android:title="@string/ShareTitle"
android:actionProviderClass="android.widget.ShareActionProvider"/>
</group>
</menu>
Navigation Drawer
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer_layout"
android:fitsSystemWindows="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<FrameLayout
android:id="@+id/content_frame"
android:layout_below="@id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:adSize="SMART_BANNER"
ads:adUnitId="ca-app-pub-8875162019282514/8222601087"
android:gravity="bottom" />
</RelativeLayout>
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:id="@+id/nav_view"
app:menu="@menu/navmenu"
app:headerLayout="@layout/header" />
</android.support.v4.widget.DrawerLayout>
Navigation Activity
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Support.V7.App;
using Android.Support.Design.Widget;
using Android.Support.V4.Widget;
using Android.Support.V7.Widget;
using TestNavigationAndroid.Fragments;
using TestNavigationAndroid.Ads;
using Android.Gms.Ads;
using Android.Support.V4.View;
namespace TestNavigationAndroid
{
[Activity(MainLauncher = true, Theme = "@style/MyTheme", Icon = "@drawable/icon")]
public class NavigationDrawerActivity : AppCompatActivity
{
DrawerLayout drawerLayout;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Create UI
SetContentView(Resource.Layout.navigation);
drawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
// Init toolbar
var toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
// Attach item selected handler to navigation view
var navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
navigationView.NavigationItemSelected += NavigationView_NavigationItemSelected;
// Create ActionBarDrawerToggle button and add it to the toolbar
var drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, Resource.String.open_drawer, Resource.String.close_drawer);
drawerLayout.SetDrawerListener(drawerToggle);
drawerToggle.SyncState();
//if first time you will want to go ahead and click first item.
if (bundle == null)
{
SwitchFragments(Resource.Id.nav_fibonacci);
}
AdView _bannerad = FindViewById<AdView>(Resource.Id.adView);
//_bannerad = AdMobWrapper.ConstructStandardBanner(this, AdSize.SmartBanner, "ca-app-pub-8875162019282514/8222601087");
//dMobWrapper.CustomBuild(_bannerad);
_bannerad.LoadAd(new AdRequest.Builder().Build());
// drawerLayout.AddView(_bannerad);
// ShowShareActivity();
}
void NavigationView_NavigationItemSelected(object sender, NavigationView.NavigationItemSelectedEventArgs e)
{
SwitchFragments(e.MenuItem.ItemId);
//if (e.MenuItem.ItemId.Equals(Resource.Id.nav_share))
//{
// ShowShareActivity(e.MenuItem);
//}
//else
//{
//}
}
private void SwitchFragments(int ItemId)
{
Android.Support.V4.App.Fragment fragment = null;
switch (ItemId)
{
case (Resource.Id.nav_fibonacci):
fragment = FibonacciSeries.NewInstance();
// React on 'Home' selection
break;
case (Resource.Id.nav_tshirt):
// React on 'Messages' selection
fragment = TshirtSize.NewInstance();
break;
case (Resource.Id.nav_standard):
// React on 'Friends' selection
fragment = StandardFragment.NewInstance();
break;
case (Resource.Id.nav_share):
// React on 'Friends' selection
ShowShareActivity();
break;
}
SupportFragmentManager.BeginTransaction()
.Replace(Resource.Id.content_frame, fragment)
.Commit();
// Close drawer
drawerLayout.CloseDrawers();
}
private void ShowShareActivity()
{
Intent sharingIntent = new Intent(Intent.ActionSend);
sharingIntent.SetType("text/plain");
String shareBody = "Here is the share content body";
sharingIntent.PutExtra(Intent.ExtraSubject, "Subject Here");
sharingIntent.PutExtra(Intent.ExtraText, shareBody);
var navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
var menu = navigationView.Menu;
IMenuItem item = menu.FindItem(Resource.Id.nav_share);
// Fetch and store ShareActionProvider
ShareActionProvider mShareActionProvider = (ShareActionProvider)MenuItemCompat.GetActionProvider(item);
mShareActionProvider.SetShareIntent(sharingIntent);
}
}
}
. 내가 달성하려고하는 것은 정보를 공유 할 수있는 모든 사용 가능한 앱이있는 조각을 보여주기 위해 누군가 내가 공유 버튼을 클릭 할 때입니다. Google 튜토리얼을 기반으로 ShareActionProvider를 설정하려고했습니다. 여기에 어떤 도움을 주셔서 감사합니다.