我在MainActivity中使用了materialTabHost和viewPager来获取可滑动的标签视图。 我还添加了导航抽屉。当我点击导航抽屉中列出的任何项目时,它将打开相关的片段。当我点击它时会将我带到MainActivity。但这里的问题是共享意图,也在导航抽屉中列出。当我点击分享时,它会打开共享对话框,但是按回按钮它不会引导我进入MainActivity,而应用程序将关闭。
以下是相关代码:
...........
mDrawerToggle = getActionBarDrawerToggle();
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerList = (ListView) findViewById(R.id.list_drawer);
mListTitles = new String[]{
getString(R.string.title_section1),
getString(R.string.title_section2),
getString(R.string.title_section3),
getString(R.string.title_section4),
getString(R.string.title_section5),
};
mDrawerList.setAdapter(new ArrayAdapter<>(this,
R.layout.drawer_list_item, mListTitles));
.....
void newFragment(int position) {
switch (position) {
case 0:
mFragment = new VideoFragment(AppGlobals.DIRECTORY.VIDEOS);
mViewPager.removeAllViews();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.executePendingTransactions();
fragmentManager.beginTransaction().replace(R.id.container, mFragment).commit();
break;
case 1:
mFragment = new VideoFragment(AppGlobals.DIRECTORY.PICTURES);
mViewPager.removeAllViews();
FragmentManager fragmentManager2 = getSupportFragmentManager();
fragmentManager2.executePendingTransactions();
fragmentManager2.beginTransaction().replace(R.id.container, mFragment).commit();
break;
case 2:
mFragment = new SettingFragment();
mViewPager.removeAllViews();
FragmentManager fragmentManager3 = getSupportFragmentManager();
fragmentManager3.executePendingTransactions();
fragmentManager3.beginTransaction().replace(R.id.container, mFragment).commit();
break;
case 3:
mFragment = new AboutFragment();
mViewPager.removeAllViews();
FragmentManager fragmentManager4 = getSupportFragmentManager();
fragmentManager4.executePendingTransactions();
fragmentManager4.beginTransaction().replace(R.id.container, mFragment).commit();
break;
case 4:
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
StringBuilder shareBody = new StringBuilder().append("Hey, I just downloaded abc app. Really awesome app for Background/Silent video recording. Helpful for stopping bribe takers. Download from below link: https://play.google.com/store/apps/details?id=").append(getPackageName().toString());
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "abc app [High Definition]");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody.toString());
startActivity(Intent.createChooser(shareIntent, "Share via"));
break;
default:
return;
}
}
是否有任何意图标志可用或需要进行一些更改。请帮帮我。感谢。
答案 0 :(得分:0)
您的应用程序是否崩溃,因为它没有响应共享结果? 你应该显示你的日志。
我猜这是正常的行为,后退请求正在发送给你的app,让它退出,因为这是下一步。 您可以捕获退出请求,并执行您喜欢的操作。
@Override
public void exit()
{
Log.e(TAG, "exit");
}
也许你想要退出的警告对话框是|否。 另见onPause()。
也可以尝试使用:
public static final int ACTIVITY_CREATE = 0;
Intent i = Intent.createChooser(shareIntent, "Share via");
startActivityForResult(i, ACTIVITY_CREATE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
if(resultCode == RESULT_CANCELED)
{
Log.e(TAG, "onActivityResult RESULT_CANCELED");
}
switch (requestCode)
{
case ACTIVITY_CREATE:
if (resultCode == RESULT_OK)
{
Log.v(TAG, "onActivityResult ACTIVITY_CREATE");
}
break;
....