片段中的findViewByID

时间 2011-06-28
阅读 495279
点赞 883
收藏 224
连接simplified

我试图在片段中创建一个ImageView,它将引用我在XML中为片段创建的ImageView元素。然而,findViewById方法仅在扩展Activity类时有效。还有什么我可以在片段中使用的吗?

public class TestClass extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ImageView imageView = (ImageView)findViewById(R.id.my_image);
        return inflater.inflate(R.layout.testclassfragment, container, false);
    }
}

这个findViewById方法上有一个错误,说明该方法未定义。

建议答案

使用getView()或实现onViewCreated方法。它返回片段的根视图(返回的那个onCreateView()方法). 有了这个你可以打电话findViewById().

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    ImageView imageView = (ImageView) getView().findViewById(R.id.foo);
    // or  (ImageView) view.findViewById(R.id.foo); 

ASgetView()仅在以下时间后工作onCreateView()不能在里面用onCreate()onCreateView()方法碎片的碎片。

👍 1281