Java Android:RuntimeException:无法启动活动组件信息

Java Android:RuntimeException:无法启动活动组件信息,java,android,android-fragments,Java,Android,Android Fragments,我是Android新手,我正在尝试将这项活动改编为一个片段,这样我就可以在主细节流中使用它,我不断收到以下信息: FATAL EXCEPTION: main E/AndroidRuntime(2391): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.expandablelistdemo/com.example.expandablelistdemo.MainActivity}: and

我是Android新手,我正在尝试将这项活动改编为一个片段,这样我就可以在主细节流中使用它,我不断收到以下信息:

FATAL EXCEPTION: main
E/AndroidRuntime(2391): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.expandablelistdemo/com.example.expandablelistdemo.MainActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class fragment
    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.expandablelistdemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
这是我的代码:

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.expandablelistdemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
清单

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.expandablelistdemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
activity_main.xml

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.expandablelistdemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <fragment
        android:id="@+id/item_list"
        android:name="com.example.expandablelistdemo.MainFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        tools:layout="@android:layout/list_content" />


</RelativeLayout>

MainFragment.java

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.expandablelistdemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
package com.example.expandablelistdemo;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import android.app.Fragment;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainFragment extends Fragment {

    List<String> groupList;
    List<String> childList;
    Map<String, List<String>> laptopCollection;
    ExpandableListView expListView;

    private LinearLayout ll;
    private FragmentActivity fa;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    fa = (FragmentActivity) super.getActivity();
    ll = (LinearLayout) inflater.inflate(R.layout.fragment_main, container, false);

    return ll;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.getActivity().setContentView(R.layout.fragment_main);

        createGroupList();

        createCollection();

        expListView = (ExpandableListView) super.getActivity().findViewById(R.id.laptop_list);
        final ExpandableListAdapter expListAdapter = new ExpandableListAdapter(
                super.getActivity(), groupList, laptopCollection);
        expListView.setAdapter(expListAdapter);

        expListView.setOnChildClickListener(new OnChildClickListener() {

            public boolean onChildClick(ExpandableListView parent, View v,
                    int groupPosition, int childPosition, long id) {
                final String selected = (String) expListAdapter.getChild(
                        groupPosition, childPosition);
               // Toast.makeText(getBaseContext(), selected, Toast.LENGTH_LONG).show();

                return true;
            }
        });
    }

    private void createGroupList() {
        groupList = new ArrayList<String>();
        groupList.add("HP");
        groupList.add("Dell");
        groupList.add("Lenovo");
        groupList.add("Sony");
        groupList.add("HCL");
        groupList.add("Samsung");
    }

    private void createCollection() {
        // preparing laptops collection(child)
        String[] hpModels = { "HP Pavilion G6-2014TX", "ProBook HP 4540",
                "HP Envy 4-1025TX" };
        String[] hclModels = { "HCL S2101", "HCL L2102", "HCL V2002" };
        String[] lenovoModels = { "IdeaPad Z Series", "Essential G Series",
                "ThinkPad X Series", "Ideapad Z Series" };
        String[] sonyModels = { "VAIO E Series", "VAIO Z Series",
                "VAIO S Series", "VAIO YB Series" };
        String[] dellModels = { "Inspiron", "Vostro", "XPS" };
        String[] samsungModels = { "NP Series", "Series 5", "SF Series" };

        laptopCollection = new LinkedHashMap<String, List<String>>();

        for (String laptop : groupList) {
            if (laptop.equals("HP")) {
                loadChild(hpModels);
            } else if (laptop.equals("Dell"))
                loadChild(dellModels);
            else if (laptop.equals("Sony"))
                loadChild(sonyModels);
            else if (laptop.equals("HCL"))
                loadChild(hclModels);
            else if (laptop.equals("Samsung"))
                loadChild(samsungModels);
            else
                loadChild(lenovoModels);

            laptopCollection.put(laptop, childList);
        }
    }

    private void loadChild(String[] laptopModels) {
        childList = new ArrayList<String>();
        for (String model : laptopModels)
            childList.add(model);
    }

    // Convert pixel to dip
    public int getDipsFromPixel(float pixels) {
        // Get the screen's density scale
        final float scale = getResources().getDisplayMetrics().density;
        // Convert the dps to pixels, based on density scale
        return (int) (pixels * scale + 0.5f);
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        super.getActivity().getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
package com.example.expandablelistdemo;
导入java.util.ArrayList;
导入java.util.LinkedHashMap;
导入java.util.List;
导入java.util.Map;
导入android.app.Fragment;
导入android.os.Bundle;
导入android.support.v4.app.FragmentActivity;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ExpandableListView;
导入android.widget.ExpandableListView.OnChildClickListener;
导入android.widget.LinearLayout;
导入android.widget.Toast;
公共类MainFragment扩展了片段{
列表组列表;
儿童名单;
地图收集;
ExpandableListView解释视图;
私人线路布局;
私人碎片活动;
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
fa=(FragmentActivity)super.getActivity();
ll=(线性布局)充气机。充气(R.layout.fragment_main,容器,假);
返回ll;
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
super.getActivity().setContentView(R.layout.fragment_main);
createGroupList();
createCollection();
expListView=(ExpandableListView)super.getActivity().findViewById(R.id.laptop\u列表);
最终ExpandableListAdapter expListAdapter=新ExpandableListAdapter(
super.getActivity(),groupList,laptopCollection);
expListView.setAdapter(expListAdapter);
setOnChildClickListener(新的OnChildClickListener(){
公共布尔onChildClick(ExpandableListView父视图,视图v,
int groupPosition、int childPosition、long id){
选择的最终字符串=(字符串)expListAdapter.getChild(
组位置、子位置);
//Toast.makeText(getBaseContext(),选中,Toast.LENGTH_LONG.show();
返回true;
}
});
}
私有void createGroupList(){
groupList=newarraylist();
组列表。添加(“HP”);
添加(“戴尔”);
集团列表。添加(“联想”);
groupList.add(“索尼”);
组列表。添加(“HCL”);
groupList.add(“三星”);
}
私有void createCollection(){
//准备笔记本电脑系列(儿童版)
字符串[]hpModels={“HP Pavilion G6-2014TX”,“ProBook HP 4540”,
“HP Envy 4-1025TX”};
字符串[]hclModels={“HCL S2101”、“HCL L2102”、“HCL V2002”};
字符串[]lenovoModels={“IdeaPad Z系列”,“基本G系列”,
“ThinkPad X系列”、“Ideapad Z系列”};
字符串[]sonyModels={“VAIO E系列”、“VAIO Z系列”,
“VAIO S系列”、“VAIO YB系列”};
字符串[]dellModels={“Inspiron”、“Vostro”、“XPS”};
字符串[]三星模型={“NP系列”、“系列5”、“SF系列”};
LaptoCollection=新LinkedHashMap();
用于(字符串笔记本电脑:组列表){
if(笔记本电脑等于(“HP”)){
loadChild(hpModels);
}else if(笔记本电脑等于(“戴尔”))
loadChild(dellModels);
else if(笔记本电脑等于(“索尼”))
loadChild(sonyModels);
else if(笔记本电脑等于(“HCL”))
loadChild(hcl模型);
else if(笔记本电脑等于(“三星”))
loadChild(三星车型);
其他的
loadChild(lenovoModels);
laptopCollection.put(笔记本电脑、儿童列表);
}
}
私有void loadChild(字符串[]laptopModels){
childList=newarraylist();
用于(字符串模型:laptopModels)
添加(模型);
}
//将像素转换为倾斜
公共整型getDipsFromPixel(浮点像素){
//获取屏幕的密度刻度
最终浮动比例=getResources().getDisplayMetrics().density;
//根据密度比例将dps转换为像素
返回(int)(像素*比例+0.5f);
}
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
super.getActivity().getMenuInflater()充气(R.menu.activity\u主菜单);
返回true;
}
}
fragment_main.xml

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.expandablelistdemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainFragment" >

    <ExpandableListView
        android:id="@+id/laptop_list"
        android:layout_width="match_parent"
        android:layout_height="fill_parent" >
    </ExpandableListView>

</RelativeLayout>

列表中还使用了1个java类和2个布局,但我确信这不是问题所在。。。。我只知道问题出在哪里

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.expandablelistdemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
我最好的猜测是
fa=(FragmentActivity)super.getActivity(),那个演员看起来很奇怪。。。或者也许只是我

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.expandablelistdemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

任何帮助都将不胜感激

尝试使用
FragmentActivity
扩展
main活动,而不仅仅是
Activity
。i、 e:

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.expandablelistdemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
public class MainActivity extends FragmentActivity