如何在不扩展应用程序的情况下使用 AndroidBootstrap
How to use AndroidBootstrap without extends Application
我正在尝试使用 Android Bootstrap 库。我遵循快速入门。在快速入门中,它说我应该像这样覆盖我的 class:
public class SampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
TypefaceProvider.registerDefaultIconSets();
}
}
如何在不扩展 Application
class 的情况下使用这个库?我想在我的 Activity classes 中使用这个库。
登录Activity:
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 class 中,我放置了按钮。当我点击它时,我应该去登录Activity class。但是,我得到一个错误:
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
在你的 activity class:
在onCreate()方法中,把这一行写在setContentView()之前;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TypefaceProvider.registerDefaultIconSets();
}
希望有用。
建议在您的应用程序中调用 TypefaceProvider.registerDefaultIconSets();
class,因为这会在屏幕上显示任何视图之前加载 FontAwesome 字体。
如果您不加载 FontAwesome 图标,则可以跳过此步骤。如果您担心启动时间,那么您可以尝试异步执行它。
最后,如果您知道您的应用程序将始终从某个 activity 启动,那么您可以在调用 setContentView
之前调用 TypefaceProvider.registerDefaultIconSets();
,并且应该仍然是能够使用 FontAwesome 图标。
这里唯一的权衡是大多数应用程序都有多个活动作为入口点,这意味着您可能必须将此设置逻辑添加到多个位置。这就是为什么当前的建议是在您的应用程序中设置它 class - 您只需要初始化一次。
我正在尝试使用 Android Bootstrap 库。我遵循快速入门。在快速入门中,它说我应该像这样覆盖我的 class:
public class SampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
TypefaceProvider.registerDefaultIconSets();
}
}
如何在不扩展 Application
class 的情况下使用这个库?我想在我的 Activity classes 中使用这个库。
登录Activity:
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 class 中,我放置了按钮。当我点击它时,我应该去登录Activity class。但是,我得到一个错误:
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
在你的 activity class:
在onCreate()方法中,把这一行写在setContentView()之前;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TypefaceProvider.registerDefaultIconSets();
}
希望有用。
建议在您的应用程序中调用 TypefaceProvider.registerDefaultIconSets();
class,因为这会在屏幕上显示任何视图之前加载 FontAwesome 字体。
如果您不加载 FontAwesome 图标,则可以跳过此步骤。如果您担心启动时间,那么您可以尝试异步执行它。
最后,如果您知道您的应用程序将始终从某个 activity 启动,那么您可以在调用 setContentView
之前调用 TypefaceProvider.registerDefaultIconSets();
,并且应该仍然是能够使用 FontAwesome 图标。
这里唯一的权衡是大多数应用程序都有多个活动作为入口点,这意味着您可能必须将此设置逻辑添加到多个位置。这就是为什么当前的建议是在您的应用程序中设置它 class - 您只需要初始化一次。