Обновление новой строки в экране макета не случайно, а в виде шаблона (например, 0,1,2,3,4 ..) при нажатии кнопки - PullRequest
0 голосов
/ 15 февраля 2019

Итак, я хочу обновить мой экран, чтобы новая строка не генерировалась случайным образом, но она должна обновлять строку в порядке (например, в порядке возрастания) при каждом нажатии кнопки.Я хочу удалить случайную функцию и использовал код, который может помочь мне обновить строку по порядку.И когда я достиг своего максимального индекса массива String, он должен вернуться к индексу 0.

// Дополнительный вопрос Как я могу вернуться к моей предыдущей строке, используя кнопку "Назад", без каких-либо новых действий?Теперь я хочу получить возможность вернуться обратно в порядке убывания.

Заранее спасибо.

enter image description here

 private TextView funFactTextView;
    private Button buttonFact;
    private Button backButton;

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

        funFactTextView = findViewById(R.id.funFactTextView);
        buttonFact = findViewById(R.id.buttonFact);
        backButton = findViewById(R.id.backButton);

       View.OnClickListener listener = new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        String[] facts = {
                                "Ants stretch when they wake up in the morning.",
                                "Ostriches can run faster than horses.",
                                "Olympic gold medals are actually made mostly of silver.",
                                "You are born with 300 bones; by the time you are an adult you will have 206.",
                                "It takes about 8 minutes for light from the Sun to reach Earth.",
                                "Some bamboo plants can grow almost a meter in just one day.",
                                "The state of Florida is bigger than England.",
                                "Some penguins can leap 2-3 meters out of the water.",
                                "On average, it takes 66 days to form a new habit.",
                                "Mammoths still walked the earth when the Great Pyramid was being built." };
                        Random random = new Random();
                        int randomNumber = random.nextInt(facts.length);
                        String fact = facts[randomNumber];
                        funFactTextView.setText(fact);//set the new string 
                    }
                };
                buttonFact.setOnClickListener(listener);//button clicked updates new string

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

замените ваш код моим кодом, и он будет работать:

View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String[] facts = {
                    "Ants stretch when they wake up in the morning.",
                    "Ostriches can run faster than horses.",
                    "Olympic gold medals are actually made mostly of silver.",
                    "You are born with 300 bones; by the time you are an adult you will have 206.",
                    "It takes about 8 minutes for light from the Sun to reach Earth.",
                    "Some bamboo plants can grow almost a meter in just one day.",
                    "The state of Florida is bigger than England.",
                    "Some penguins can leap 2-3 meters out of the water.",
                    "On average, it takes 66 days to form a new habit.",
                    "Mammoths still walked the earth when the Great Pyramid was being built." };
            String fact = "";
            for(int i=0;i<facts.length;i++)
            {
                fact+=facts[i];
            }

            funFactTextView.setText(fact);//set the new string 
        }
    };
    buttonFact.setOnClickListener(listener);//button clicked updates new string
0 голосов
/ 15 февраля 2019

Вы можете написать функцию как показано ниже

Глобальная переменная Decalre вне метода

 private int i=0;



View.OnClickListener listener = new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    String[] facts = {
                            "Ants stretch when they wake up in the morning.",
                            "Ostriches can run faster than horses.",
                            "Olympic gold medals are actually made mostly of silver.",
                            "You are born with 300 bones; by the time you are an adult you will have 206.",
                            "It takes about 8 minutes for light from the Sun to reach Earth.",
                            "Some bamboo plants can grow almost a meter in just one day.",
                            "The state of Florida is bigger than England.",
                            "Some penguins can leap 2-3 meters out of the water.",
                            "On average, it takes 66 days to form a new habit.",
                            "Mammoths still walked the earth when the Great Pyramid was being built." };
                    if(i==facts.length)
                    {
                     i=0;
                    }
                    String fact = facts[i];
                    funFactTextView.setText(fact);//set the new string 
                    i++;
                }
            };
            buttonFact.setOnClickListener(listener);//button clicked updates new string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...