我正在尝试使用Android Bootstrap库。我跟着快速启动。在快速入门中,它说我应该覆盖我的类:
public class SampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
TypefaceProvider.registerDefaultIconSets();
}
}
如何在不延长Application
课程的情况下使用此库?我想在我的Activity类中使用这个库。
LoginActivity:
public class Login extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TypefaceProvider.registerDefaultIconSets();
setContentView(R.layout.activity_login);
}
}
activity_login.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.merve.tev.Login">
<com.beardedhen.androidbootstrap.BootstrapDropDown
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:bootstrapText="Medium {fa_thumbs_o_up}"
app:bootstrapBrand="regular"
app:roundedCorners="true"
app:bootstrapSize="md"
app:dropdownResource="@array/bootstrap_dropdown_example_data"
app:bootstrapExpandDirection="down"
tools:layout_editor_absoluteY="202dp"
tools:layout_editor_absoluteX="115dp" />
</LinearLayout>
在我的MainActivity类中,我放置了按钮。当我点击它时,我应该去LoginActivity类。但是,我收到一个错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class com.beardedhen.androidbootstrap.BootstrapDropDown
答案 0 :(得分:1)
在您的活动课程中:
在onCreate()方法中,在setContentView();
之前写下这一行protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TypefaceProvider.registerDefaultIconSets();
}
我希望它能奏效。
答案 1 :(得分:0)
建议在应用程序类中调用TypefaceProvider.registerDefaultIconSets();
,因为这会在屏幕上显示任何视图之前加载FontAwesome字体。
如果您没有加载FontAwesome图标,则可以跳过此步骤。如果你担心启动时间,那么你可以尝试异步执行它。
最后,如果您知道您的应用将始终从某个活动启动,那么您可以在调用TypefaceProvider.registerDefaultIconSets();
之前调用setContentView
,并且仍然可以使用FontAwesome图标。
这里唯一的权衡是大多数应用程序都有多个活动作为入口点,这意味着您可能需要将此设置逻辑添加到多个位置。这就是为什么当前的建议是在你的Application类中设置它 - 你只需要初始化它一次。