Сбой MergeAdapterDemo при вызове addView () - PullRequest
0 голосов
/ 31 января 2012

Я пытаюсь запустить MergeAdapterDemo от commonsguy.Код компилируется и работает нормально, когда я закомментирую вызовы addView.Например, это работает нормально:

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    adapter=new MergeAdapter();
    arrayAdapter=buildFirstList();
    adapter.addAdapter(arrayAdapter);
    //adapter.addView(buildButton(), true);
    adapter.addAdapter(buildSecondList());
    //adapter.addView(buildLabel());
    adapter.addAdapter(buildSecondList());

Тем не менее, это приведет к сбою:

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    adapter=new MergeAdapter();
    arrayAdapter=buildFirstList();
    adapter.addAdapter(arrayAdapter);
    adapter.addView(buildButton(), true);
    adapter.addAdapter(buildSecondList());
    adapter.addView(buildLabel());
    adapter.addAdapter(buildSecondList());

Вот код вызова, когда происходит сбой:

Thread [<1> main] (Suspended (exception NoClassDefFoundError))  
    MergeAdapter.addViews(List, boolean) line: 101  
    MergeAdapter.addView(View, boolean) line: 78    
    MergeAdapter.addView(View) line: 64 
    MergeAdapterDemo.onCreate(Bundle) line: 52  
    Instrumentation.callActivityOnCreate(Activity, Bundle) line: 1047   
    ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1611    
    ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1663 
    ActivityThread.access$1500(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 117   
    ActivityThread$H.handleMessage(Message) line: 931   
    ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
    Looper.loop() line: 123 
    ActivityThread.main(String[]) line: 3683    
    Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
    Method.invoke(Object, Object...) line: 507  
    ZygoteInit$MethodAndArgsCaller.run() line: 839  
    ZygoteInit.main(String[]) line: 597 
    NativeStart.main(String[]) line: not available [native method]

IЯ использую готовый файл .jar, который находился в разделе загрузки на его странице.

Есть предложения, как это работает?Спасибо!

Ответы [ 2 ]

1 голос
/ 31 января 2012

Строка 101 -

 addAdapter(new SackOfViewsAdapter(views));

Но у вас нет SackOfViewsAdapter класса.

https://github.com/commonsguy/cwac-merge/blob/master/README.markdown говорит, что:

Этот проект требует CWAC SackOfViewsAdapter.Копию совместимого JAR можно найти в каталоге libs / проекта, хотя вы можете попробовать более новые или те, которые вы исправили самостоятельно.

Так что вам нужно включить этобиблиотека в вашем проекте.

0 голосов
/ 31 января 2012

Разместите свой XML-файл макета здесь.

Также проверьте, правильно ли вы используете тег MergeAdapter в XML.

...