0

我一直在关注关于片段的教程只是为了对它们有所了解,我一直遵循教程到最后,Eclipse现在抛出错误"The method Fragment1() is undefined for the type MainActivity"我不确定是否与Import.R.Android.*我之前遇到的问题有关它现在不是指Fragment1.class?或者在初始化片段的教程中遗漏了什么?

据我了解 public void Onclick(View v) {

    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 开发人员指南对这种特殊情况没有帮助,因为他们似乎以与本教程不同的方式实现它们。

4

1 回答 1

0

我建议在尝试学习 Android 框架之前找到一本关于如何用 Java 编写代码的好书或网站,因为您似乎在 Java 类和一些基本 Java 语法方面存在一些问题。

对Java来说,newFragment = Fragment1();是一个方法调用。它有一个方法名 ( Fragment),并且不传入任何参数。

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

此外,从您的代码片段中并不清楚,但您必须定义为 typesFragment1Fragment2的类。这些应该扩展Fragment类。

我强烈建议您遵循Android 开发人员指南,因为您遵循的指南似乎对您没有多大帮助,官方指南提供了非常好的示例,说明 Google 说您应该如何组织和编码您的应用程序。

于 2013-01-26T15:47:39.933 回答