Javascript 片段到活动,然后返回片段

Javascript 片段到活动,然后返回片段,javascript,android,android-fragments,android-intent,Javascript,Android,Android Fragments,Android Intent,我怎样才能从(活动1->fragment1)中恢复原意?实际上,我的设计理念是(fragment1->activity1->fragment1)在fragment1中,我单击它将我带到activity1进行编辑,或者在单击任意两个按钮后更新数据或删除数据。它将带我回到fragment1并查看整体数据。但我的问题是,我单击任意两个按钮,它将从应用程序跳出,我如何解决此问题?使用意图还是 下面的代码是更新详细信息(活动1) 下面的代码是HistoryF(fragment1)的片段 这是我控制选项卡的

我怎样才能从(活动1->fragment1)中恢复原意?实际上,我的设计理念是(fragment1->activity1->fragment1)在fragment1中,我单击它将我带到activity1进行编辑,或者在单击任意两个按钮后更新数据或删除数据。它将带我回到fragment1并查看整体数据。但我的问题是,我单击任意两个按钮,它将从应用程序跳出,我如何解决此问题?使用意图还是

下面的代码是更新详细信息(活动1)

下面的代码是HistoryF(fragment1)的片段

这是我控制选项卡的主要活动

public class MainActivity extends AppCompatActivity {

    Toolbar toolbar;
    TabLayout tabLayout;
    ViewPager viewPager;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);

        tabLayout = (TabLayout) findViewById(R.id.tablayout);
        tabLayout.setupWithViewPager(viewPager);


    }
    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new KeyInWeightF(), "TRACK");
        adapter.addFragment(new HistoryF(), "HISTORY");
        adapter.addFragment(new AnalysisF(), "GRAPH");
        viewPager.setAdapter(adapter);
    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
public类MainActivity扩展了AppCompatActivity{
工具栏;
表格布局;
查看页面查看页面;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar=(toolbar)findviewbyd(R.id.toolbar);
设置支持操作栏(工具栏);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager=(viewPager)findViewById(R.id.viewPager);
设置viewPager(viewPager);
tabLayout=(tabLayout)findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
}
专用无效设置ViewPager(ViewPager ViewPager){
ViewPagerAdapter适配器=新的ViewPagerAdapter(getSupportFragmentManager());
addFragment(新的KeyInWeightF(),“TRACK”);
addFragment(newhistoryf(),“HISTORY”);
addFragment(新的AnalysisF(),“GRAPH”);
viewPager.setAdapter(适配器);
}
类ViewPagerAdapter扩展了FragmentPagerAdapter{
私有最终列表MFFragmentList=new ArrayList();
私有最终列表MFFragmentTitleList=new ArrayList();
公共视图页面编辑器(碎片管理器){
高级经理;
}
@凌驾
公共片段getItem(int位置){
返回MFFragmentList.get(位置);
}
@凌驾
public int getCount(){
返回MFFragmentList.size();
}
public void addFragment(片段片段,字符串标题){
添加(片段);
MFFragmentTitleList.add(标题);
}
@凌驾
公共字符序列getPageTitle(int位置){
返回MFFragmentTitleList.get(位置);
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
int id=item.getItemId();
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}

您只需在returnHome()上使用此代码即可

两者的工作原理相同

并在您的清单文件中定义parentActivity

manifest.xml

<activity
        android:name="com.example.yourApp.MainActivity" ...>
        ...
    </activity>
    <!-- A child of the main activity -->
    <activity
        android:name="com.example.yourApp.Update_detail_info"
        android:label="@string/title_activity_Update_detail"
        android:parentActivityName="com.example.yourApp.MainActivity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.yourApp.MainActivity" />
    </activity>


要了解startactivityforresult请转到此

可能重复的抱歉,我只是复制了代码,但它不起作用。你对家长活动是什么意思?你是说我的主要活动?是的,我是说你的主要活动。但是如果你的活动1是临时活动(fragment1->activity1->fragment1),那么你为什么不在startActivityForResult(intent,RequestCode)中使用startActivityForResult(intent)。我不知道你如何让一个公会展示示例代码?我只是照你说的做,复制代码并将其放在returnHome()中,但它不起作用。您的意思是像这样的Intent=NavUtils.getParentActivityIntent(MainActivity.this);intent.setFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);NavUtils.navigateUpTo(MainActivity.this,intent);为什么要编写MainActivity。这是当前活动的上下文。您的问题是,可能您没有在manifest.xml中定义parentActivity。请参见编辑。
public class MainActivity extends AppCompatActivity {

    Toolbar toolbar;
    TabLayout tabLayout;
    ViewPager viewPager;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);

        tabLayout = (TabLayout) findViewById(R.id.tablayout);
        tabLayout.setupWithViewPager(viewPager);


    }
    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new KeyInWeightF(), "TRACK");
        adapter.addFragment(new HistoryF(), "HISTORY");
        adapter.addFragment(new AnalysisF(), "GRAPH");
        viewPager.setAdapter(adapter);
    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
Intent intent = NavUtils.getParentActivityIntent(Update_detail_info.this); //get parent activity
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
NavUtils.navigateUpTo(Update_detail_info.this, intent); // and then navigate it to parent
 NavUtils.navigateUpFromSameTask(Update_detail_info.this);
<activity
        android:name="com.example.yourApp.MainActivity" ...>
        ...
    </activity>
    <!-- A child of the main activity -->
    <activity
        android:name="com.example.yourApp.Update_detail_info"
        android:label="@string/title_activity_Update_detail"
        android:parentActivityName="com.example.yourApp.MainActivity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.yourApp.MainActivity" />
    </activity>