Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在开始之前先把面包片拿出来_Java_Android_Android Fragments_Toast - Fatal编程技术网

Java 在开始之前先把面包片拿出来

Java 在开始之前先把面包片拿出来,java,android,android-fragments,toast,Java,Android,Android Fragments,Toast,我是Android的初学者,正在尝试编写一个简单的应用程序。当进入片段时,单击“启动其他片段”按钮,以便: @Override public void onClick(View v) { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { Toast.makeText(getActivity(), "Hello

我是Android的初学者,正在尝试编写一个简单的应用程序。当进入片段时,单击“启动其他片段”按钮,以便:

@Override
public void onClick(View v) {
    new Handler(Looper.getMainLooper()).post(new Runnable() {
        @Override
        public void run() {
            Toast.makeText(getActivity(), "Hello", Toast.LENGTH_SHORT).show();
            FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
            secondFragment.removeAllViews();
            transaction.replace(R.id.secondFragment, new DashBoardFragment());
            transaction.commit();
        }
    });
}

但是在其他片段开始之后显示Hello Toast,但我希望在片段开始之前显示。

toasting
之后在
onClick
中尝试此操作:-

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
        secondFragment.removeAllViews();
        transaction.replace(R.id.secondFragment, new DashBoardFragment());
        transaction.commit();
    }
}, Toast.LENGTH_SHORT);
您的片段事务将在1500毫秒后发生(,因此您的toast消息将在事务发生之前弹出)

你的完全点击方法

@Override
public void onClick(View v) {
    Toast.makeText(getActivity(), "Hello", Toast.LENGTH_SHORT).show();
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
            secondFragment.removeAllViews();
            transaction.replace(R.id.secondFragment, new DashBoardFragment());
            transaction.commit();    
        }  
    }, Toast.LENGTH_SHORT);              
}

烤后的
一次点击
试试这个:-

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
        secondFragment.removeAllViews();
        transaction.replace(R.id.secondFragment, new DashBoardFragment());
        transaction.commit();
    }
}, Toast.LENGTH_SHORT);
您的片段事务将在1500毫秒后发生(,因此您的toast消息将在事务发生之前弹出)

你的完全点击方法

@Override
public void onClick(View v) {
    Toast.makeText(getActivity(), "Hello", Toast.LENGTH_SHORT).show();
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
            secondFragment.removeAllViews();
            transaction.replace(R.id.secondFragment, new DashBoardFragment());
            transaction.commit();    
        }  
    }, Toast.LENGTH_SHORT);              
}

为什么要使用
处理程序
?此外,我认为一切都发生得如此之快,以至于你认为在片段开始之后会显示toast。为什么要使用
处理程序
?此外,我认为一切都发生得如此之快,以至于你认为在片段开始之后显示toast甚至更好,如果你用toast替换1500。LENGTH_SHORT
toast。LENGTH_SHORT
也将在片段事务@BasilBattikhiHow之后显示?toast完成后,它将替换片段:/都在不同的线程中运行..!!:)@BasilBattikhi和Toast都将同时运行。这是一个完美的解决方案+1如果用Toast替换1500,甚至更好。LENGTH_SHORT
Toast。LENGTH_SHORT
也将在片段事务@BasilBattikhiHow后显示?toast完成后,它将替换片段:/都在不同的线程中运行..!!:)@BasilBattikhi将同时运行这是一个完美的解决方案+1