片段,方法Fragment1()未定义类型MainActivity我想解释请

时间:2013-01-26 15:40:47

标签: java android eclipse

我一直在关注片段的教程只是为了对它们进行一些曝光,我已经按照教程进行了结束而Eclipse正在抛出错误"The method Fragment1() is undefined for the type MainActivity"现在我不确定是不是处理我之前遇到的Import.R.Android.*问题,它现在没有引用Fragment1.class?或者在初始化片段的教程中遗漏了什么?

据我了解     public void Onclick(查看对象){

    Fragment newFragment;

    if (v == button1) {
        newFragment = Fragment1();
    }else if (v == button2) {
        newFragment = Fragment2();
    }else if (v == button3) {
        newFragment = Fragment3();
    }else {
        newFragment = StartFragment();
    }

}

它会根据按下哪个按钮的片段替换占位符Fragment(newFragment)?或者我错过了一些显而易见的事情?谢谢你的帮助。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:baselineAligned="false" >

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="Onclick"
            android:text="Frag1" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="Onclick"
            android:text="Frag2" />

        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="OnClick"
            android:text="Frag3" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/myFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:orientation="vertical" >

    </LinearLayout>

</LinearLayout>

TLDR:我知道它是因为片段没有定义但是由于我正在学习教程,所以我还不知道如何定义它。

Android开发人员指南对此特定情况没有帮助,因为他们似乎以与本教程不同的方式实现它们。

1 个答案:

答案 0 :(得分:0)

我建议在尝试学习Android框架之前找一本关于如何用Java编码的好书或网站,因为看起来你有一些Java类和一些基本的Java语法问题。

对于Java,newFragment = Fragment1();是方法调用。它有一个方法名称(Fragment),并且没有传递任何参数。

要实例化对象(例如片段),您需要使用new关键字。例如,Fragment myFragment = new Fragment1();

此外,您的代码段不清楚,但您必须定义类型为Fragment1Fragment2等的类。这些类应扩展Fragment类。

我强烈建议您关注Android developers guide,因为您所遵循的指南似乎对您没什么帮助,官方指南提供了Google如何组织和编写应用程序的非常好的示例。