Java Android Studio-按钮重复帮助

Java Android Studio-按钮重复帮助,java,android,Java,Android,我对下一步需要做什么感到有点困惑。我正在尝试创建一个应用程序,当按下按钮时,它会生成一个报价。最初,当我按下按钮时,会出现一个单词,但当我再次尝试按下按钮时,它不会打印出另一个单词 package com.example.under.funfacts; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Vi

我对下一步需要做什么感到有点困惑。我正在尝试创建一个应用程序,当按下按钮时,它会生成一个报价。最初,当我按下按钮时,会出现一个单词,但当我再次尝试按下按钮时,它不会打印出另一个单词

package com.example.under.funfacts;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import java.util.*;

import static com.example.under.funfacts.R.id.PressMe;
import static com.example.under.funfacts.R.id.quote;
import static com.example.under.funfacts.R.id.text2;

public class MainActivity extends AppCompatActivity {
TextView txt;
Button btn;

String[] quotes = new String[] {"texas", "jersey", "Pennsylvania", "Tennessee", "Mississippi"};
String randomQuote = quotes[(int) (Math.random()*quotes.length)];


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    txt = (TextView) findViewById(R.id.quote);
    Button btn = (Button) findViewById(R.id.PressMe);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            txt.setText(randomQuote);


        }
    });
}
}
我知道我可能会列出一份报价单,但不幸的是,我不知道如何实现这一点。
希望我错过了一个小细节,因为我想按下按钮多次,这样我可以看到多个单词或引号

您的
randomQuote
变量只设置一次。您应该将其声明移动到
onClick()方法内部。这样,每次单击按钮时都会设置:

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String randomQuote = quotes[(int) (Math.random()*quotes.length)];
        txt.setText(randomQuote);
    }
});

您的
randomQuote
变量只设置一次。您应该将其声明移动到
onClick()方法内部。这样,每次单击按钮时都会设置:

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String randomQuote = quotes[(int) (Math.random()*quotes.length)];
        txt.setText(randomQuote);
    }
});

基于josmith42的答案,如果您想继续向文本中添加单词,可以检索现有文本,而无需担心
列表
。大概是这样的:

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        CharSequence currentText = txt.getText();
        String randomQuote = quotes[(int) (Math.random()*quotes.length)];

        if (currentText.length() == 0) {
            txt.setText(randomQuote);
        } else {
            txt.setText(currentText + " " + randomQuote);
        }
    }
});

基于josmith42的答案,如果您想继续向文本中添加单词,可以检索现有文本,而无需担心
列表
。大概是这样的:

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        CharSequence currentText = txt.getText();
        String randomQuote = quotes[(int) (Math.random()*quotes.length)];

        if (currentText.length() == 0) {
            txt.setText(randomQuote);
        } else {
            txt.setText(currentText + " " + randomQuote);
        }
    }
});