Java 此事务应通过提交调用完成

Java 此事务应通过提交调用完成,java,android,Java,Android,我有以下代码来更改片段: FragmentTransaction fragmentTransaction = getSupportFragmentManager() .beginTransaction() .replace(R.id.frame_content, fragment); if (isBackable) fragmentTransaction.addToBackStack(null); fragmentTransaction.comm

我有以下代码来更改片段:

FragmentTransaction fragmentTransaction = getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.frame_content, fragment);

if (isBackable) fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Android studio警告:

此事务应通过commit()调用完成


我不知道如何正确解决此警告。

我想如果您尝试此方法,警告将消失

FragmentTransaction fragmentTransaction = getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.frame_content, fragment);

if (isBackable) {
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();
}

你可以不显示警告

祝你好运

这是假阳性

AndroidLint只看到您在没有提交的情况下将一些片段事务调用链接在一起,但在后面的一行中看不到提交

你也可以

  • 无视警告

  • 使用
    @SuppressLint(“提交交易”)
    将其抑制,或

  • 删除方法链接,即替换

    FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.frame_content, fragment);
    


  • 它已经在那里了,所以没问题。是的,尽管有警告,它仍然在工作。我只是好奇,因为安卓工作室一直在警告我。这是一个糟糕的编码还是有其他方法可以做到这一点?这是anroid studio编译,它认为如果我们编写
    beginTransaction()
    ,那么在该语句中应该有
    commit()
    ;这两种我都试过了。它仍然会发出同样的警告。当然,我可以压制这个警告。谢谢;)
    FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.frame_content, fragment);
    
    FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                .beginTransaction();
    fragmentTransaction.replace(R.id.frame_content, fragment);