-1

やあ!

私はこの設定を持っています。

MainActivity-SherlockFragmentActivityを拡張します-TabsAdapterを使用して4つのフラグメントを表示します

これが必要なタブの1つに問題があります。

FragmentSkills-SherlockListFragmentを拡張します-ハードコードされたテスト文字列のExpandableListViewを今のところ表示します

================================================== ================================問題:この時点でNullPointerExceptionが発生し、回転できないようです。

// FragmentSkills.javaのonActivityCreated()内expandList =(ExpandableListView)getActivity()。findViewById(R.id.ExpList);

================================================== ================================

私はここで少し立ち往生していて、他に何を試すべきかわかりません。私は似たようなことについてたくさんの例を見つけましたが、それらはすべて通常のアクティビティでこれを行う方法を示しているだけです。経験不足で見えない小さなものかもしれませんので、ぜひご覧になって手伝ってください。

私はAndroidを初めて使用するので、しばらくお待ちください。どんな助けでも大歓迎です。よろしくお願いします。関連するコードは次のとおりです。もっと見る必要がある場合はお知らせください。どうもありがとう!

Fragment_skills.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ExpandableListView android:id="@+id/ExpList"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
       android:groupIndicator="@null" />

</LinearLayout>

list_item_skill_groups.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView android:id="@+id/tvSkillGroup"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="15dp"
        android:textColor="@color/black"
        android:textIsSelectable="false"
        android:textSize="17sp" />

</LinearLayout>

list_item_skills.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="10dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingBottom="10dp"
    android:orientation="vertical" >

    <TextView android:id="@+id/tvSkillTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textIsSelectable="false"
        android:textSize="19sp"
        android:textStyle="normal"
        android:paddingBottom="4dp" />

</LinearLayout>

FragmentSkills.java

public class FragmentSkills extends SherlockListFragment {
    private ExpandableListView expandList;
    private ArrayList<ExpandableSkillsGroup> expListItems;
    private SkillsAdapter skillsAdapter;
    ArrayList<ExpandableSkillsChild> list1;
    ArrayList<ExpandableSkillsChild> list2;
    ArrayList<ExpandableSkillsChild> list3;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        expandList = (ExpandableListView) getActivity().findViewById(R.id.ExpList);
        expListItems = getListItems();
        skillsAdapter = new SkillsAdapter(getActivity(), expListItems);
        expandList.setAdapter(skillsAdapter);
    }

    private ArrayList<ExpandableSkillsGroup> getListItems() {
        list1 = new ArrayList<ExpandableSkillsChild>();
        list1.add(new ExpandableSkillsChild("Android", null));
        list1.add(new ExpandableSkillsChild("Java", null));
        list1.add(new ExpandableSkillsChild("Javascript", null));

        ExpandableSkillsGroup group1 = new ExpandableSkillsGroup("Software Development");
        group1.setItems(list1);

        list2 = new ArrayList<ExpandableSkillsChild>();
        list2.add(new ExpandableSkillsChild("MySQL", null));
        list2.add(new ExpandableSkillsChild("PostgreSQL", null));
        list2.add(new ExpandableSkillsChild("SQLite", null));

        ExpandableSkillsGroup group2 = new ExpandableSkillsGroup("Databases");
        group2.setItems(list2);

        list3 = new ArrayList<ExpandableSkillsChild>();
        list3.add(new ExpandableSkillsChild("MySQL", null));
        list3.add(new ExpandableSkillsChild("PostgreSQL", null));
        list3.add(new ExpandableSkillsChild("SQLite", null));

        ExpandableSkillsGroup group3 = new ExpandableSkillsGroup("Operating Systems");
        group3.setItems(list3);

        ArrayList<ExpandableSkillsGroup> groupList  = new ArrayList<ExpandableSkillsGroup>();
        groupList.add(group1);
        groupList.add(group2);
        groupList.add(group3);
        return groupList;
    }
}
4

1 に答える 1

0

まず、に置き換えます。ここFragmentSkills extends SherlockListFragmentFragmentSkills extends SherlockFragmentは必要ありませんSherlockListFragmentFragmentSkills次に、このメソッドを:に追加します。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_skills, container, false);
}

public void onActivityCreated(Bundle savedInstanceState)代わりにあなたにも

    expandList = (ExpandableListView) getActivity().findViewById(R.id.ExpList);

これを行う

    expandList = (ExpandableListView) getView().findViewById(R.id.ExpList);
于 2013-02-21T19:33:41.643 に答える