【发布时间】:2018-01-20 15:36:10
【问题描述】:
当我打开我的应用并浏览我的菜单时,我来到一个包含多个按钮的页面。每个按钮都旨在将数据发送到另一个活动,然后启动它。它可以正常发送数据,但是当我按下按钮时,它会将我带到一个空白页面。当我点击手机上的后退按钮时,它会显示正确的屏幕。我添加了显示在空白屏幕上的纯文本,但直到我点击返回按钮后,textViews 才会出现。
活动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>
【问题讨论】:
-
在你的类中实现 onCick 就可以避免代码中的大量重复
-
每次点击有 两个
startActivity。这是为什么呢? -
你能发布带有按钮的xml代码吗?