2010-08-02 38 views
0

我試圖設置一個ViewFlipper,每次按下按鈕時都會更改SlidingDrawers的內容。到目前爲止,我設置的每個視圖都可以正常工作,但現在我正在嘗試在ViewFlipper的子視圖內創建一個ListView(包括single_choice_mode),但是我的嘗試只允許出現NullPointerException。因爲我今天才發現ViewFlipper,所以我還不是很瞭解它,可能還沒有完全理解它......如果有人能幫我一把,幫我弄清楚我做錯了什麼,那就太好了。如何使用ListView填充ViewFlipper子視圖?

預先感謝您。


這裏是我做了什麼:

代碼爲ImageButtons的onClick事件:

public void onClick(View v) { 
    if (v == btnExposure) { 

     mFlipper.setDisplayedChild(0); 

    } else if (v == btnProperties) { 
     mFlipper.setDisplayedChild(1); 
    } else if (v == btnSpecialEffects) { 
     mFlipper.setDisplayedChild(2); 
     String[] specialEffects = getResources().getStringArray(R.array.special_effects_array); 
     lv.setAdapter(new ArrayAdapter <String> (this, R.layout.specialeffectsview, specialEffects)); 
     lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
    } 

} 

的ViewFlipper我的主要XML文件中的XML代碼:

我的strings.xml中的字符串數組:
<string-array name="special_effects_array"> 
     <item>None</item> 
     <item>Greyscale</item> 
     <item>Sepia</item> 
     <item>Negative</item> 
     <item>Solarize</item> 
     <item>Polarize</item> 
    </string-array> 

最後的specialeffectsview.xml(爲ListView佈局文件):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:id="@+id/view_special_effects_list" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<ListView android:id="@+id/special_effects_list" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent"></ListView> 
</LinearLayout> 

回答

0

由於一直discussed on the Android Google Groups when you inquired there,你NullPointerException是因爲你lv變量null。您需要使其不是null,可能是通過在setContentView()之後的某個時間呼叫lv=(ListView)findViewById(R.id.special_effects_list)

+0

我已經嘗試過,但因爲這也沒有工作,我改變了一個簡單的LinearLayout與RadioButton組,而不是我的理想和最終的解決方案,但現在,應該做的伎倆... ... - – kivy 2010-08-04 14:58:04