放置Fragment后无法直接找到Fragment的元素

时间:2017-03-09 22:03:01

标签: java android android-fragments nullpointerexception

G'日 问题很简单,在AppCompatActivity的onResume()方法中,我更换了一个片段,并希望在此之后直接更改其子节点的某些值。

例如:

public void onResume(){
    Fragment FR = new Fragment();
    FragmentTransaction FT = getSupportFragmentManager().beginTransaction();
    FT.replace(containerID, FR); //The Container is a FrameLayout
    FT.commit();

    findViewById(R.id.someTextView).setId(SomeID); //This throws a NullPointerException

}

准确:java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.View.setId(int)' on a null object reference

任何想法如何找到我的观点?

2 个答案:

答案 0 :(得分:1)

由于getView()只能在onCreateView()之后工作,所以你不能像上面那样使用它。

答案 1 :(得分:0)

您应该使用commitNow而不是提交。 在提交指令之后,片段实际上没有附加到位。 commitNow将同步执行提交,您应该能够在之后找到该视图。