2017-09-15 74 views
0

我正在嘗試使用Android Bootstrap庫。我遵循快速入門。在快速啓動,它說我應該重寫我的課是這樣的:如何使用AndroidBootstrap無需擴展應用程序

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 

回答

1

在您的活動類:

在onCreate()方法,寫的setContentView前此訂單();

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     TypefaceProvider.registerDefaultIconSets(); 

} 

我希望它能工作。

+0

感謝您的快速回復。我試着說你的話。但是現在,我得到一個錯誤:java.lang.RuntimeException:無法啓動活動ComponentInfo。我將我的代碼添加到了我的問題中。 – heyaa

+0

請參閱已更新的答案 – Naimatullah

+0

我嘗試了您的更新答案,它適用於除下拉菜單外的所有內容。謝謝! – heyaa

0

建議您在應用程序類中調用TypefaceProvider.registerDefaultIconSets();,因爲在屏幕上顯示任何視圖之前,它將加載FontAwesome字體。

如果你沒有加載FontAwesome圖標,那麼你可以跳過這一步。如果你擔心啓動時間,那麼你可以嘗試異步執行它。

最後,如果您知道您的應用將始終從某個活動啓動,那麼您可以在調用setContentView之前致電TypefaceProvider.registerDefaultIconSets();,並且應該仍然能夠使用FontAwesome圖標。

這裏唯一的折衷是大多數應用程序都有多個活動作爲入口點,這意味着您可能必須將此設置邏輯添加到多個位置。這就是爲什麼當前的建議是在你的Application類中設置它 - 你只需要初始化一次。

相關問題