简体   繁体   English

单击 ListView 项时应用程序不断崩溃

[英]App keeps crashing when ListView item is clicked on

Hello I am new to Java and coding in general.您好,我是 Java 和一般编码的新手。

I am using a ListView to display different sets of words which are stored in array.我正在使用ListView来显示存储在数组中的不同单词集。 Clicking an item in the list will display the words in the array according to which item has been clicked.单击列表中的项目将根据单击的项目显示数组中的单词。 I have added the lines of the code that display the text and display a hint into an if statement and now my app keeps crashing when I click on the item 0.我在if语句中添加了显示文本和显示提示的代码行,现在当我单击项目 0 时,我的应用程序不断崩溃。

Could someone please give me some advice?有人可以给我一些建议吗?

Here is my code :这是我的代码:

package com.example.anotherapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    int i = -1;

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

    public void chooseGame() {
        final ArrayList<String> arrayList = new ArrayList<String>();
        final TextView wordTextView = findViewById(R.id.wordTextView);
        final EditText editTextView = findViewById(R.id.enterEditText);
        final Button nextButton = findViewById(R.id.nextButton);
        ArrayList<String> gamesArrayList = new ArrayList<String>();
        gamesArrayList.add("A Vegan's Worst Nightmare");
        gamesArrayList.add("The Wet Floor Sign");
        gamesArrayList.add("The Meaning of life");
        gamesArrayList.add("Campfire Story");
        gamesArrayList.add("The Crocobearamouse");
        final ListView gamesListView = findViewById(R.id.gamesListView);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                this,
                android.R.layout.simple_list_item_1,
                gamesArrayList);
        gamesListView.setAdapter(arrayAdapter);
        gamesListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                                                 @Override
                                                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                                     if (position == 0) {

                                                         gamesListView.setVisibility(View.INVISIBLE);
                                                         editTextView.setVisibility((View.VISIBLE));
                                                         wordTextView.setVisibility((View.VISIBLE));
                                                         nextButton.setVisibility(View.VISIBLE);


                                                         String[] zeroArray = {"Food", "Adjective", "Proper Noun", "Name"};
                                                         String displayHint = "";
                                                         String displayText = "";

                                                         displayText = enterWord() + zeroArray[i];
                                                         displayHint = zeroArray[i];

                                                         wordTextView.setText(displayText);
                                                         editTextView.setHint(displayHint);
                                                     }
                                                 }
                                             }
        );
    }

    public String enterWord() {
        String[] zeroArray = {"Food", "Adjective", "Proper Noun", "Name"};
        String entry;
        if (zeroArray[i].equals("Adjective")) {
            entry = "Enter an ";
        } else {
            entry = "Enter a ";
        }
        return entry;
    }

    public void nextWord(View view) {
        i++;
    }
}

您的变量i-1开始,您的代码调用array[i] ,我认为这是使您的应用程序崩溃的主要原因

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM