获取对外部库xml模块的引用

时间:2015-11-08 16:10:47

标签: android xml material-design

我正在使用navasmdc的MaterialDesignLibrary

现在我只想获得对Button的引用,我得到了问题:

  

不兼容的类型:
  必需:com.gc.materialdesign.views.buttonflat   发现:android.view.view

我的代码如下:

   (...)

    ButtonFlat cmdNextButton;

    (...)

      @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_registration_page_stufe, container, false);

            cmdNextButton = rootView.findViewById(R.id.registration_button_next);

            return rootView;
        }

    (...)

在我的xml中只是按钮:

 <com.gc.materialdesign.views.ButtonFlat
                android:id="@+id/registration_button_next"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@color/colorPrimaryDark"
                android:text="weiter" />

我不明白为什么我会遇到这个问题,因为我在代码中创建的按钮来自我使用的库类。 Android工作室甚至自动导入它......

1 个答案:

答案 0 :(得分:1)

findViewById()方法返回一个View,您需要将其强制转换为View类型。你也需要为常规按钮执行此操作。

您可以在this example中看到分配ButtonFlat引用的正确方法。

只需投射findViewById()的结果,它应该有效:

cmdNextButton = (ButtonFlat) rootView.findViewById(R.id.registration_button_next);