2016-03-05 18 views
1

我想在AppCompatActivity的操作欄內添加一個autocompletetextview組件。我的代碼是:Android:操作欄內的AppCompatActivity和textview

styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

MainActivity.java

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Thread.setDefaultUncaughtExceptionHandler(new GlobalException()); 

     Toolbar tb = (Toolbar) findViewById(R.id.toolbar_search); 
     setSupportActionBar(tb); 
} 

佈局/ action_bar_search.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar_search" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    app:layout_scrollFlags="scroll|enterAlways" 
    app:layout_collapseMode="pin"> 

    <AutoCompleteTextView 
     android:id="@+id/theSearch" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:hint="@string/search_the" 
     android:imeOptions="actionSearch" 
     android:inputType="textAutoComplete|textAutoCorrect" 
     android:textColor="#FFFFFF" > 

     <requestFocus /> 
    </AutoCompleteTextView> 

</android.support.v7.widget.Toolbar> 

當我的應用程序打開時,我看到一個空白屏幕上,幾秒鐘後,它會變成一個空白的黑屏,一直保持這種狀態,直到我手動停止。任何想法?

顯然,後Toolbar tb = (Toolbar) findViewById(R.id.toolbar_search); TB爲空

+0

我認爲可以在堆棧跟蹤中找到更多的信息,你是否得到任何異常? –

+0

沒有例外,就好像它在後臺運行一樣,而我看到的只是一個黑屏,在幾秒鐘後變成白色 – Amos

+0

嗯。那麼你提供的代碼看起來很好,所以你的應用程序可以掛起的原因很多。例如像一個無限循環。因此,如果沒有堆棧跟蹤,這將是最好的猜測。 –

回答

2

Toolbar XML不包括

AutoCompleteTextView text; 
String[] languages={"Android ","java","IOS","SQL","JDBC","Web services"}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    text=(AutoCompleteTextView)findViewById(R.id.theSearch); 
    ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,languages); 
    text.setAdapter(adapter); 
    text.setThreshold(1);  
    } 

我希望這將幫助你....在您的R.layout.activity_main因此findById將無法​​正常工作。這會導致Toolbar保持空狀態並導致應用程序崩潰。您可以使用<include>標記包含佈局資源。在你的情況下:<include layout="@layout/action_bar_search"/>

0

下面是AutocompleteTextView示例代碼:

+0

由於我上面寫的症狀(白色/黑色空白屏幕),看起來問題更深。 – Amos

+0

問題是我做了什麼錯。複製粘貼其他代碼是不是真的有用:)我期望至少看到自動完成文本視圖,但這不是發生什麼 – Amos

+0

在這種情況下,問題將是別的....因爲代碼工作正常在我身邊。 ... –