Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 意图在一个文件中的类之间不起作用_Android - Fatal编程技术网

Android 意图在一个文件中的类之间不起作用

Android 意图在一个文件中的类之间不起作用,android,Android,我的问题是-Intent不能在一个文件中的类之间工作。应用程序正在构建中,没有错误,可以安装,但是,当im打开act\u 2\u 1\u开始并尝试进入pod1时,按下按钮option1,屏幕会变白2秒钟,并在act\u 2\u 1\u开始之前进入活动(活动在另一个文件中,有一个按钮让我开始行动。我认为问题的解决非常简单,我命名错误,但我不知道是什么。我需要在一个文件中包含多个类。有人可以帮助我吗。以下是代码: public class act_2_1_getting_started extend

我的问题是-Intent不能在一个文件中的类之间工作。应用程序正在构建中,没有错误,可以安装,但是,当im打开
act\u 2\u 1\u开始
并尝试进入
pod1
时,按下按钮
option1
,屏幕会变白2秒钟,并在
act\u 2\u 1\u开始之前进入活动
(活动在另一个文件中,有一个按钮让我开始行动。我认为问题的解决非常简单,我命名错误,但我不知道是什么。我需要在一个文件中包含多个类。有人可以帮助我吗。以下是代码:

public class act_2_1_getting_started extends AppCompatActivity implements View.OnClickListener {

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

        TextView story = (TextView) findViewById(R.id.story);
        story.setText("Text1");
        Button option1 = (Button) findViewById(R.id.option1);
        option1.setOnClickListener(this);

    }

    public void onClick(View view) {
        Intent intent;
        switch (view.getId()) {
            case R.id.option1:
                intent = new Intent(this, pod1.class);
                startActivity(intent);
                break;
        }


    }

}
和同一文件中的另一个类:

class pod1 extends AppCompatActivity implements View.OnClickListener {

    protected void onCreate(Bundle savedInstanceState1) {
        super.onCreate(savedInstanceState1);
        setContentView(R.layout.act_2_1_getting_started);

        TextView story = (TextView) findViewById(R.id.story) ;
        story.setText("Text2");
        Button option1 = (Button) findViewById(R.id.option1);
        option1.setOnClickListener(this);
    }
    public void onClick(View view) {
        Intent intent;
        switch (view.getId()) {
            case R.id.option1:
                intent = new Intent(this, anoth.class );
                startActivity(intent);
                break;
        }


    }
}

看看AndroidManifest.xml文件。您在那里定义了pod1活动了吗

在尝试启动新活动时,logcat肯定会向您显示错误

顺便说一句,请尽量遵守Java命名约定,不要使用“_”,并以大写字母开头类名

问候

编辑

如果您希望在一个java文件中包含两个活动(我不知道为什么,这不是一个好方法),那么以下方法是:

public class Activity1 extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState1) {
        super.onCreate(savedInstanceState1);
    }

    public class Activity2 extends AppCompatActivity {

        protected void onCreate(Bundle savedInstanceState1) {
            super.onCreate(savedInstanceState1);
        }
    }

}
然后,您可以通过以下方式在清单中添加内部活动:

<activity android:name="<package_name>.Activity1$Activity2"/>


这类类类被称为“嵌套类”,但它们用于其他目的,因此使用不同的java文件。

我认为这可能有助于防止出现白屏..把这个
true
在您的样式中..现在您的样式将如下所示:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="cardViewStyle">@style/CardView</item>
        <item name="android:windowDisablePreview">true</item>
        <item name="android:textDirection">locale</item>

    </style>

@颜色/原色
@颜色/原色暗
@颜色/颜色重音
@样式/卡片视图
真的
场所

Unrelated,你应该阅读Java命名约定使你的pod1类成为公共类。如果pod1在不同的包中,那么act_2_1_getting_started类将无法访问它。但是当我使pod1类成为公共类时,Android Studio给了我两种可能性-使它公开,或者将它移动到pod1.class,这样它将我在另一个文件中。Sol您将如何解决它,一个文件中有多个类,并且可以在它们之间使用intent?在AndroidManifest.xml中,它不允许我定义它,因为它不是公共的。正如我向您展示的代码,它构建时没有错误,安装后工作不正常。您能告诉我如何放置多个cl吗ass在一个文件上,并使它们之间的意图成为可能?您必须将其公开,活动类必须从包外部访问。您需要将其添加到清单中,否则活动将不会启动(错误日志将告诉您这一点).白屏不是问题,我将其描述为主要问题的原因,即在一个文件中没有引起类之间的意图。