2017-06-01 94 views
0

您好我儘量讓這個代碼的簡單listActivity以下Android文檔:ListActivity顯示白色畫面

public class AddProductChoices extends ListActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.add_product_choices); 

    ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.addProductChoices)); 
    setListAdapter(adapter); 

    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
    Toast.makeText(this, "Option Selected " + position, Toast.LENGTH_LONG); 
    } 
} 

R.layout.add_product_choices:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="es.infofly.apps.gestcomprasnav.activities.AddProductChoices"> 

<TextView 
    android:id="@android:id/empty" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="No data" /> 

<ListView 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:visibility="visible"/> 
</LinearLayout> 

的strings.xml:

<resources> 
    <array name="addProductChoices"> 
    <item>Opcion 1</item> 
    <item>Opcion 2</item> 
    <item>Opcion 3</item> 
    <item>Opcion 4</item> 
    </array> 
</resources> 

但我得到的只是一個白色屏幕。 我嘗試直接使用數組作爲測試,而不是獲取字符串,xml具有相同的結果。 任何人都可以告訴我我錯過了什麼嗎?由於

+0

按照這個例子https://examples.javacodegeeks.com/android/core/app/listactivity/android-listactivity-example/ –

+0

我試圖和相同,但我發現它失敗時。我添加了對我自己問題的回覆。 – Aplessed

回答

0

的問題在manifest.xml我稱之爲活動的主題,以顯示爲一個對話框監守:

<activity 
     android:name=".activities.AddProductChoices" 
     android:label="@string/add_product_choices" 
     android:theme="@style/Base.Theme.AppCompat.Dialog" /> 

如果我嘗試使用對話框主題顯示白色畫面,如果我用通常的尺寸(主題,所有的屏幕)進展順利。所以我用一個普通AppCompatActivity並正常使用一個ListView:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.add_product_choices); 

    ListView choices = (ListView) findViewById(R.id.lv_choices); 

    ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.addProductChoices)); 
    choices.setAdapter(adapter); 

    choices.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Intent resultChoice = new Intent(); 
      resultChoice.putExtra("choice", position); 
      setResult(RESULT_OK, resultChoice); 
      finish(); 
     } 
    });