Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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
Java Android Studio-当我启动应用程序并导航到菜单时,按钮会转到一个空屏幕,而不是活动_Java_Android_Xml_Textview - Fatal编程技术网

Java Android Studio-当我启动应用程序并导航到菜单时,按钮会转到一个空屏幕,而不是活动

Java Android Studio-当我启动应用程序并导航到菜单时,按钮会转到一个空屏幕,而不是活动,java,android,xml,textview,Java,Android,Xml,Textview,当我打开应用程序并浏览菜单时,我会看到一个有多个按钮的页面。每个按钮都用于将数据发送到另一个活动,然后启动它。它可以发送数据,但当我按下按钮,它会带我到一个空白页。当我按下手机上的“后退”按钮时,它会显示正确的屏幕。我添加了在空白屏幕上显示的纯文本,但是直到点击后退按钮,文本视图才出现。 活动java文件: package com.example.boys.fishkeeper; import android.content.Intent; import android.os.Bundle;

当我打开应用程序并浏览菜单时,我会看到一个有多个按钮的页面。每个按钮都用于将数据发送到另一个活动,然后启动它。它可以发送数据,但当我按下按钮,它会带我到一个空白页。当我按下手机上的“后退”按钮时,它会显示正确的屏幕。我添加了在空白屏幕上显示的纯文本,但是直到点击后退按钮,文本视图才出现。

活动java文件:

package com.example.boys.fishkeeper;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class Categories extends AppCompatActivity {

    private Button barbsButton;
    private Button tetrasButton;
    private Button livebearersButton;
    private Button gouramisButton;
    private Button cichlidsButton;
    private Button bettasButton;
    private Button rasborasButton;
    private Button daniosButton;
    private Button snakeheadsButton;
    private Button mormyridsButton;
    private Button catfishButton;
    private Button knifefishButton;
    private Button loachesButton;
    private Button pufferfishButton;
    private Button plecsButton;


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

        barbsButton = (Button) findViewById(R.id.barbsButton);
        tetrasButton = (Button) findViewById(R.id.tetrasButton);
        livebearersButton = (Button) findViewById(R.id.livebearersButton);
        gouramisButton = (Button) findViewById(R.id.gouramisButton);
        cichlidsButton = (Button) findViewById(R.id.cichlidsButton);
        bettasButton = (Button) findViewById(R.id.bettaButton);
        rasborasButton = (Button) findViewById(R.id.rasborasButton);
        daniosButton = (Button) findViewById(R.id.daniosButton);
        snakeheadsButton = (Button) findViewById(R.id.snakeheadsButton);
        mormyridsButton = (Button) findViewById(R.id.mormyridsButton);
        catfishButton = (Button) findViewById(R.id.catfishButton);
        knifefishButton = (Button) findViewById(R.id.knifefishButton);
        loachesButton = (Button) findViewById(R.id.loachesButton);
        pufferfishButton = (Button) findViewById(R.id.pufferfishButton);
        plecsButton = (Button) findViewById(R.id.plecsButton);

        barbsButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Barbs");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        bettasButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Bettas");
                intent.putExtra("typeInfo", "Betta are incredibly aggresive towards their own species. They will fight each other to the death. Plankat betta may survive with tetra and catfish but siamese fighters can only be kept singly(as a male) or in species tanks(if they are female).");

                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        tetrasButton.setOnClickListener(new View.OnClickListener() {


            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Tetras");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        livebearersButton.setOnClickListener(new View.OnClickListener() {


            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Livebearers");
                intent.putExtra("typeInfo", "Livebearers give birth to live young and are hardy fish. They are usually small(less than 6 cm)");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        gouramisButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Gouramis");
                intent.putExtra("typeInfo", "Gouramis");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        cichlidsButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Cichlids");
                intent.putExtra("typeInfo", "Gouramis");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }



        });
        rasborasButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Rasboras");
                intent.putExtra("typeInfo", "Gouramis");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        daniosButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Danios");
                intent.putExtra("typeInfo", "Gouramis");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        snakeheadsButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Snakeheads");
                intent.putExtra("typeInfo", "Gouramis");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        mormyridsButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "MormyRids");
                intent.putExtra("typeInfo", "Gouramis");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        catfishButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Catfish");
                intent.putExtra("typeInfo", "Gouramis");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        knifefishButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "KnifeFish");
                intent.putExtra("typeInfo", "Gouramis");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        loachesButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Loaches");
                intent.putExtra("typeInfo", "Loaches have an erectable spine below their eyes. They genrally grow quite large and benefit from living in groups.");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        pufferfishButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "PufferFish");
                intent.putExtra("typeInfo", "They are cool!");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });
        plecsButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {


                Intent intent = new Intent(getBaseContext(), FishInfo.class);
                intent.putExtra("typeName", "Plecs");
                intent.putExtra("typeInfo", "Plecs are cool!");
                startActivity(intent);

                Intent i = new Intent(getApplicationContext(),FishInfo.class);
                startActivity(i);




            }
        });


    }
}
XML文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.boys.fishkeeper.FishInfo">

    <TextView
        android:id="@+id/nameOfFish"
        android:layout_width="317dp"
        android:layout_height="48dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="Name"
        android:textAlignment="center"
        android:textSize="30sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/fishInfo"
        android:layout_width="314dp"
        android:layout_height="390dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="Info"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/nameOfFish" />

</android.support.constraint.ConstraintLayout>

您正在两次和第二次启动同一活动,因为该活动没有数据,因此存在问题,请删除

Intent intent = new Intent(getBaseContext(), FishInfo.class);
intent.putExtra("typeName", "Barbs");
// or other data
startActivity(intent);

// start FishInfo activity with no data
// remove every occurrence of this 
//Intent i = new Intent(getApplicationContext(),FishInfo.class);
//startActivity(i);

您将运行活动两次:一次使用额外数据,一次不使用。因此,您所描述的是正确的行为。
onClick()
方法替换为:

public void onClick(View view) {
   Intent intent = new Intent(getBaseContext(), FishInfo.class);
   intent.putExtra("typeName", "Barbs");
   startActivity(intent);    
}

这将发送数据并开始您的活动。

您本可以避免代码中的大量重复,只要在类中实现一次单击,每次单击就有两次
startActivity
。为什么会这样?你能用按钮发布xml代码吗?**Intent Intent=newintent(getBaseContext(),FishInfo.class)也是如此;intent.putExtra(“类型名”、“倒钩”);startActivity(意向);**足够启动它吗?@B.Sommer是的,您只需要一个
Intent
实例就可以启动特定的活动,无论是否有数据