如何通过单击后退(不是“后退硬件”按钮)返回到上一片段?

gosulove

我只有1个活动,其中有2个片段。当开始活动时,片段A将启动。在用户键入某物并单击后,该按钮将定向到片段B。因此,我想做的是在左上角添加这样的“后退箭头”。

它与FragmentManager.popBackStack()有关吗?请指教 !谢谢

MainActivity.java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    FragmentManager manager=getSupportFragmentManager();
    FragmentTransaction transaction=manager.beginTransaction();
    first first=new first();
    transaction.add(R.id.top,first);
    transaction.commit();
}
}

第一.java

public class first extends Fragment implements View.OnClickListener{

Button get_button;
EditText get_input_name;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_first,container,false);
    get_input_name=(EditText)rootView.findViewById(R.id.input_name);
    get_button=(Button)rootView.findViewById(R.id.submit);
    get_button.setOnClickListener(this);
    return rootView;
}

public void onClick(View v){

    FragmentManager manager=getFragmentManager();
    FragmentTransaction transaction=manager.beginTransaction();
    two Two=new two();
    Bundle bundle = new Bundle();
    bundle.putString("input_name_value",get_input_name.getText().toString());
    Two.setArguments(bundle);
    transaction.replace(R.id.top,Two);
    transaction.commit();

}
}

二.java

public class two extends Fragment implements View.OnClickListener {
TextView get_display_input;
ImageView get_back_button;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_two, container, false);
}

public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    get_display_input=(TextView)getActivity().findViewById(R.id.display_input);
    get_back_button=(ImageView) getActivity().findViewById(R.id.back_button);
    Bundle bundle = getArguments();
    String get_name = bundle.getString("input_name_value");
    //int store_get_input=Integer.parseInt(get_name);
    get_display_input.setText("You have entered "+get_name);
}

public void onClick(View v){

    //  WHAT TO DO HERE IN ORDER TO RETURN TO PREVIOUS Fragment when clicking the button?

}
}

在此处输入图片说明

更精确地说,请参阅屏幕截图。

阿什什·兰詹(Ashish ranjan)

您可以使用的popBackStack()方法FragmentManager将其放入onClickListener后退按钮的内:

if (getFragmentManager().getBackStackEntryCount() != 0) {
    getFragmentManager().popBackStack();
}

如果您使用工具栏的默认后退按钮(即主页按钮),则可以通过将以下代码放置在的onOptionsItemSelected()方法中来做到这一点Activity

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == android.R.id.home) {
        if (getFragmentManager().getBackStackEntryCount() != 0) {
            getFragmentManager().popBackStack();
        }
        return true;
    }

    return super.onOptionsItemSelected(item);
}

或者,如果您希望在按下硬件后退按钮时具有相同的行为,则可以像下面这样重写类中onBackPressed()方法Activity

@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() != 0) {
        getFragmentManager().popBackStack();
    } else {
        super.onBackPressed();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在返回堆栈防止同一片段

Android后退一个片段,当按下硬件后退按钮时会显示后退一个片段。

单击“浏览器后退”按钮时,将用户带回到上一页的滚动位置

我如何在片段中对“后退”按钮进行操作。索要手机硬件后退按钮

如何检测后退按钮单击并使Webview返回

从其他活动返回同一片段时,如何保存和恢复片段中RecyclerView的滚动位置?

使用swift单击“后退”按钮时,如何从任何当前视图返回到根视图?

后退按钮返回到另一项活动,而不是我在清单中定义的活动

后退按钮关闭应用程序,而不是转到上一个片段android导航组件

代号单硬件本机后退按钮转到上一页

从片段到上一个家庭片段的后退按钮箭头

单击设备后退按钮将关闭应用程序,而不是返回上一页

如何让android动作栏后退按钮返回片段

如何通过按“后退”按钮从任何片段进入根活动?

React-Native:回到android硬件后退按钮

按后退按钮移动到上一个片段时显示空白屏幕

移动设备上的 Safari 浏览器后退按钮,不会将用户返回到上一页的最后滚动位置

防止导航到同一片段

Android导航:从同一片段访问NavHostFragment

如何在同一片段中创建多个Retrofit回调-Android

angularjs:单击浏览器的后退按钮时如何从嵌套视图返回上一页?

如果用户单击 android 后退按钮,如何不返回上一屏幕

使用NavigatorDrawer时如何从一个片段或活动更改为另一片段或活动?

是否有一种简单的方法可以通过使用 android 上的后退按钮来防止片段返回

片段中的“后退”按钮

在将某些数据传递到活动后,如何从同一片段中结束片段?

如何使用片段中的相机并在同一片段的图像视图中显示捕获的图像?

当客户端通过单击“后退”按钮进入页面时,如何使其加载新副本而不是缓存副本?

如何使Webview的HTML内容重新回到“后退”按钮上单击?