Android Fragments 安卓/Java:片段UI不可访问

mgdq6dx1  于 2023-02-23  发布在  Android
关注(0)|答案(1)|浏览(84)

在下面这个Java的小例子中,我试图访问我在一个片段中设置的小部件,但我无法访问这些小部件。例如,在下面的代码中,我对setText()的调用不起作用,也不改变布局。
代码可以编译,所以我认为我的xml没有任何问题。
所有其他方法都是默认的,我更改的方法只有onViewCreatedonCreateView

public class MyFragment extends Fragment {

    View view;
    Button btn;

    public MyFragment() {}

    @Override
    public void onCreate( ... }

    public static MyFragment newInstance() { ... }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {

        System.out.println("VIEW CREATED");      // prints

        btn.setText("Text Changed");                     // text isn't changed
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.my_fragment, container, false);
        btn = view.findViewById(R.id.thisIsAButton);
        return inflater.inflate(R.layout.my_fragment, container, false);
    }
}

我也尝试过将onClickListeners和其他东西设置为按钮,但我就是无法访问它。

nhn9ugyo

nhn9ugyo1#

你能试试这个密码吗

@Override
    public void onViewCreated(View view, Bundle savedInstanceState) {

        System.out.println("VIEW CREATED");      // prints
        btn = view.findViewById(R.id.thisIsAButton);
        btn.setText("Text Changed");                     // text isn't changed
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.my_fragment, container, false);
        return view;
    }

相关问题