从片段创建子意图

nvbavucw  于 2021-07-13  发布在  Java
关注(0)|答案(3)|浏览(362)

我用fragmentactivity在片段之间切换。但是我想在一个片段上有一个admin按钮,当我点击它时,一个新片段或活动看起来像一个孩子(操作栏中有back按钮)。
我怎样才能做到?
这是我的代码,可以使用,但“后退”按钮不会出现在操作栏中:
碎片:

public class Reports extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (container == null) {
            return null;
        }
public void onClick(View v) {
                Intent intent = new Intent(getActivity(), LoginActivity.class);
                getActivity().startActivity(intent);
            }
        });
    }
}

活动(目前。。。但如果我们需要的话,也许是碎片?):

public class LoginActivity extends ActionBarActivity {
    public static final String TAG = LoginActivity.class.getSimpleName();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        Button loginButton = (Button) findViewById(R.id.loginButton);
        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TextView emailText = (TextView) findViewById(R.id.emailText);
                TextView passwordText = (TextView) findViewById(R.id.passwordText);
                ParseUser.logInInBackground(emailText.getText().toString(), passwordText.getText().toString(), new LogInCallback() {
                    public void done(ParseUser user, ParseException e) {
                        if (user != null) {
                            Log.i(TAG, "Yeahhh Login OK");
                            finish();
                        } else {
                            runOnUiThread();
                        }
                    }
                });
            }
        });
    }

也许我得改变一下舱单上的东西?

mrfwxfqh

mrfwxfqh1#

你所需要做的就是在你当前的活动中启用它。
当进入一个 FragmentActivity : getActionBar().setHomeAsUpEnabled(boolean) .
否则,在 Fragment : getActivity().getActionBar().setHomeAsUpEnabled(boolean) .

w1jd8yoj

w1jd8yoj2#

你需要重写 onCreateOptionsMenu 以及 onOptionsItemSelected . 在 onCreateOptionsMenu 方法执行以下操作:将菜单充气到操作栏中。您可以在下定义菜单项的内容 res/menu 文件夹。
下一个 onOptionsItemSelected 方法,可以处理添加在操作栏中的后退按钮的单击。还要记住一件事。在清单中,请使用一个有操作栏的主题。示例:在应用程序标记下使用 android:theme="@android:style/Theme.Light" 不是这样的 android:theme="@android:style/Theme.Light.NoTitleBar

72qzrwbm

72qzrwbm3#

如果你要开始 new Activity 您可以通过写入 shouldDisplayHomeUp();onCreate() 方法和上一步应该将您带到后堆栈中的上一个活动。另一种情况是加一个 new Fragment 你可以看看这个答案作为参考,因为它提到,当你添加一个 new Fragment 你把它加到 back stack 这样地

getSupportFragmentManager().beginTransaction()
                           .add(detailFragment, "detail")
                           // Add this transaction to the back stack
                           .addToBackStack()
                           .commit();

这将使后退按钮带你到你的上一页 Fragment

相关问题