2010-08-02 45 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