2010-08-02 4 views
0

Я пытаюсь настроить ViewFlipper, который изменяет содержимое SlidingDrawers каждый раз при нажатии кнопки. До сих пор все созданные мной настройки работали нормально, но теперь я пытаюсь создать ListView (включая single_choice_mode) в дочернем представлении ViewFlipper, но моя попытка разрешить только исключение NullPointerException. Поскольку я только открыл ViewFlipper сегодня, я еще не знаком с ним и, возможно, не понял его полностью ... если кто-то может дать мне руку и помочь мне узнать, что я сделал неправильно, это было бы здорово.Как заполнить представление ViewFlipper с помощью ListView?

Заранее спасибо.


Вот что я сделал:

код для события OnClick из ImageButtons:

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); 
    } 

} 

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> 

Строковый массив в моих строках.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, возможно, позвонив по телефону lv=(ListView)findViewById(R.id.special_effects_list) в некоторый момент после setContentView().

+0

Я уже пробовал это, но поскольку это тоже не сработало, я изменил макет на простой LinearLayout с RadioButton Group, а не на мое идеальное и окончательное решение, но пока это должно сделать трюк ... – kivy

Смежные вопросы