Android 如何使用ListView填充ViewFlipper子视图?

Android 如何使用ListView填充ViewFlipper子视图?,android,listview,viewflipper,Android,Listview,Viewflipper,我正在尝试设置一个ViewFlipper,它可以在每次按下按钮时更改滑动抽屉的内容。到目前为止,我设置的每个视图都运行良好,但现在我尝试在ViewFlipper的子视图中创建ListView(包括单选项模式),但我的尝试只允许出现NullPointerException。因为我今天才发现了ViewFlipper,我还不熟悉它,可能还没有完全理解它……如果有人能帮我找出我做错了什么,那就太好了 先谢谢你 以下是我所做的: ImageButtons的onClick事件的代码: public voi

我正在尝试设置一个ViewFlipper,它可以在每次按下按钮时更改滑动抽屉的内容。到目前为止,我设置的每个视图都运行良好,但现在我尝试在ViewFlipper的子视图中创建ListView(包括单选项模式),但我的尝试只允许出现NullPointerException。因为我今天才发现了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);
    }

}
public void onClick(视图v){
if(v==btnExposure){
mFlipper.setDisplayedChild(0);
}else if(v==btnProperties){
mFlipper.setDisplayedChild(1);
}else if(v==btnSpecialEffects){
mFlipper.setDisplayedChild(2);
字符串[]SpecialFects=getResources().getStringArray(R.array.special\u effects\u数组);
lv.setAdapter(新的ArrayAdapter(this,R.layout.specialeffectsview,specialEffects));
lv.setChoiceMode(ListView.CHOICE\u MODE\u SINGLE);
}
}
主XML文件中ViewFlipper的XML代码:

<ViewFlipper
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content"
   android:id="@+id/flipper"
   android:layout_toRightOf="@id/button_exposure">
   <include android:id="@+id/view_exposure" layout="@layout/exposureview" />
   <include android:id="@+id/view_properties" layout="@layout/propertiesview" />
   <include android:id="@+id/view_special_effects" layout="@layout/specialeffectsview"/>
  </ViewFlipper>

my 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>

没有一个
灰阶
乌贼墨
消极的
日光浴
极化
最后是SpecialFectsView.xml(ListView的布局文件):


与以往一样,您的
NullPointerException
是因为您的
lv
变量是
null
。在
setContentView()

之后的某个时刻,您需要通过调用
lv=(ListView)findViewById(R.id.special\u effects\u list)
使其不为
null
,可能是通过调用
lv=(ListView)findViewById(R.id.special\u effects\u\u list)
来实现的,我已经尝试过了,但由于这也不起作用,我将布局更改为带有RadioButton组的简单线性布局,这不是我的理想和最终,但就目前而言,这应该可以解决问题。。。
<?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>