java - android fragment 可以在api 3.0上使用,但不能在2.2上使用

标签 java android xml eclipse android-fragments

我正在使用日食。我确实添加了支持库。相同的代码可在任何带有Epi hiegher(而不是3.0)的设备或仿真器上工作,但不适用于2.2
这是代码

  public class Main_View extends FragmentActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);   
    }
}


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" >

    <fragment
        android:id="@+id/fragment2"
        android:name="com.oent.bib_med.Cathegorie_List"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />

    <fragment
        android:id="@+id/fragment1"
        android:name="com.oent.bib_med.Books_List"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="3"
         />



</LinearLayout>


片段类具有相同的代码

public class Books_List extends ListFragment{

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

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

        String[] books = {"a","b","c","d","e","f","g","h","i"};

        ArrayAdapter <String> booksAdapter = 
                new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,books );
        setListAdapter(booksAdapter);

    }

}


本地猫:
10-06 00:41:33.044:E / AndroidRuntime(408):致命异常:主要
10-06 00:41:33.044:E / AndroidRuntime(408):java.lang.IllegalStateException:ArrayAdapter要求资源ID为TextView
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.AbsListView.obtainView(AbsListView.java:1315)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.ListView.measureHeightOfChildren(ListView.java:1198)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.ListView.onMeasure(ListView.java:1109)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.View.measure(View.java:8171)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.View.measure(View.java:8171)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.View.measure(View.java:8171)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.View.measure(View.java:8171)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.View.measure(View.java:8171)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.View.measure(View.java:8171)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.LinearLayout.measureVertical(LinearLayout.java:526)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.View.measure(View.java:8171)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.View.measure(View.java:8171)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.ViewRoot.performTraversals(ViewRoot.java:801)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.os.Handler.dispatchMessage(Handler.java:99)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.os.Looper.loop(Looper.java:123)
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.app.ActivityThread.main(ActivityThread.java:4627)
10-06 00:41:33.044:E / AndroidRuntime(408):at java.lang.reflect.Method.invokeNative(本机方法)
10-06 00:41:33.044:E / AndroidRuntime(408):at java.lang.reflect.Method.invoke(Method.java:521)
10-06 00:41:33.044:E / AndroidRuntime(408):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
10-06 00:41:33.044:E / AndroidRuntime(408):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-06 00:41:33.044:E / AndroidRuntime(408):在dalvik.system.NativeStart.main(本机方法)
10-06 00:41:33.044:E / AndroidRuntime(408):由以下原因引起:java.lang.ClassCastException:com.android.internal.widget.WeightedLinearLayout
10-06 00:41:33.044:E / AndroidRuntime(408):位于android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:340)
10-06 00:41:33.044:E / AndroidRuntime(408):... 38更多

最佳答案

API低于11的版面simple_list_item_activated_1不存在。这就是为什么它崩溃的原因。

关于java - android fragment 可以在api 3.0上使用,但不能在2.2上使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19203885/

相关文章:

java - 将子 XML 元素反序列化为 XML 字符串

android - 如何让GridLayout背景透明?

java - Android 与 iPhone 的应用程序质量如何?其背后的原因是什么?

java - 按多个字段对对象数组进行排序

android - 通过 Facebook 应用程序共享文本,如何更改 "shared via Facebook for Android"?

android - 如何自定义 float ActionBar的背景?

Android:在ListView中将列表中的选定项目限制为1

java - 在 IntelliJ Idea 中调试时在 Map 中设置值

java - 为什么 math.ceiling 不四舍五入我的数字? java

java - 尽管设置了属性,但 AppCompat 工具栏标高缺失(使用 RecyclerView)