【问题标题】:Share the app using navigation in Android在 Android 中使用导航共享应用程序
【发布时间】:2020-10-16 06:14:52
【问题描述】:

我正在尝试从菜单栏共享应用程序,但导航部分显示共享意图背后的布局。

我真的想要和 mainActivity 一样,用户点击菜单(共享应用程序)和使用导航的shareIt(); 函数调用。

这是我的导航部分:

这是片段。

public class ShareAppFragment extends Fragment {

    public static ShareAppFragment newInstance(String param1, String param2) {
        ShareAppFragment fragment = new ShareAppFragment();
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        share_it();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.fragment_share_app, container, false);
        share_it();
        return v;
    }

    private void share_it() {
        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
        sharingIntent.setType("text/plain");
        String shareBody = Constant.SHARE_IT_MSG;
//        sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, CONSTANT.SHARE_IT_MSG);
        sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
        startActivity(Intent.createChooser(sharingIntent, "Share via"));
    }
}


<fragment
        android:id="@+id/nav_share_app"
        android:name="a3.bolto.bolto.ui.main.view.nav.ShareAppFragment"
        android:label="@string/share_the_app"
        tools:layout="@layout/fragment_share_app" >
        <action
            android:id="@+id/action_nav_home_to_privacy_policy"
            app:destination="@id/share_appFragment"
            app:enterAnim="@anim/fragment_open_enter"
            app:exitAnim="@anim/fragment_close_exit" />
    </fragment>

【问题讨论】:

    标签: android menu navigation fragment


    【解决方案1】:

    如果您正在使用导航,则执行 “NavigationView.OnNavigationItemSelectedListener”和
    在 ONcreate 中:这样做:

    NavigationView navigationView = findViewById(R.id.nav_view);
            navigationView.setNavigationItemSelectedListener(this);

    像这样覆盖它

    @Override
        public boolean onNavigationItemSelected ( @NonNull MenuItem item) {
            // Handle navigation view item clicks here.
            int id = item.getItemId() ;
            if (id == R.id.nav_share_app ) {
                share_app();
            } else if (id == R.id.nav_logout ) {
                finish();
            }
            DrawerLayout drawer = findViewById(R.id. drawer_layout ) ;
            drawer.closeDrawer(GravityCompat. START ) ;
            return true;
        }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多