2011-08-29 82 views
0

我目前正在嘗試使用運行Gingerbread 2.3.4的Nexus One上的Android ActionBar Sherlock。 我嘗試開發一個FragmentList,使我能夠在此活動中創建一個菜單。 該菜單現在應該由「item1 - item4」組成。但是之後我想要菜單由一個自定義列表組成。Listfragment每次崩潰很基本的應用程序

但是,每當我嘗試執行我的應用程序,它強制關閉由於某種原因或另一個。

這是佈局文件:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
android:paddingLeft="0dip" 
android:background="@drawable/bg"> 
<TextView 
android:id="@+id/title" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="Hauptmenü" 
android:background="@drawable/custom_bg_title" 
android:padding="5dip" 
android:gravity="center" 
android:textStyle="bold" 
android:height="30px" 
/> 

<fragment class="com.w..TitlesFragment" 
     android:id="@+id/titles" android:layout_weight="1" 
     android:layout_width="0px" 
     android:layout_height="match_parent" /> 


</LinearLayout> 

這是活動

package com.; 

import android.app.ListFragment; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 

import android.support.v4.view.Menu; 
import android.support.v4.view.MenuItem; 
import android.support.v4.view.SubMenu; 
import android.support.v4.view.Window; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class wcw_realActivity extends FragmentActivity implements OnItemClickListener { 


private static final String[] items ={"item1","item2","item3","item4"}; 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    SubMenu subMenu1 = menu.addSubMenu("Action Item"); 
     subMenu1.add("Sample"); 
     subMenu1.add("Menu"); 
     subMenu1.add("Items"); 

    MenuItem subMenu1Item = subMenu1.getItem(); 
     subMenu1Item.setIcon(R.drawable.ic_title_share_default); 
     subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);   

    return super.onCreateOptionsMenu(menu); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_ACTION_BAR);   
    setContentView(R.layout.main);      
} 

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    Log.i("FragmentList", "Item clicked: "+ id); 
} 

public static class TitlesFragment extends ListFragment { 
    boolean mDualPane; 
    int mCurCheckPosition = 0; 

    @Override 
    public void onActivityCreated(Bundle savedState) { 
     super.onActivityCreated(savedState); 

     // Populate list with our static array of titles. 
     setListAdapter(new ArrayAdapter<String>(getActivity(), 
       android.R.layout.simple_list_item_1, 
       items)); 

     if (savedState != null) { 
      // Restore last state for checked position. 
      mCurCheckPosition = savedState.getInt("curChoice", 0); 
     } 
    } 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putInt("curChoice", mCurCheckPosition); 
    } 

    @Override 
    public void onListItemClick(ListView l, View v, int pos, long id) { 
     Log.i("FragmentList", "Item clicked: "+ id); 
    } 

} 

}

的的CodeFile我懷疑我初始化一個不錯的方法片段 - 這將可能會解釋應用程序每次崩潰。

當我從我的應用程序中排除「片段」標籤時,它工作得很好。

如果有人知道某個問題的解決方案,那將會很棒。

這裏是日誌文件

+0

請從logcat發佈stacktrace。 – 2011-08-29 17:21:14

回答

0

ListFragment(或任何其它Fragment)不可在薑餅默認。您可能會針對Honeycomb進行編譯,這就是爲什麼它會編譯但運行時崩潰。在舊版Android中使用compatibility package來使用Fragments。此外,請確保您的minSdkVersion設置爲正確的。

如果您已經在使用兼容性軟件包,也許您未正確包括它(因爲找不到ListFragment類)?

相關問題