java - 单击 ListView 项目时应用程序不断崩溃
问题描述
您好,我是 Java 和一般编码的新手。
我正在使用 aListView
来显示存储在数组中的不同单词集。单击列表中的项目将根据单击的项目显示数组中的单词。我已经在语句中添加了显示文本和显示提示的代码行,if
现在当我单击项目 0 时,我的应用程序不断崩溃。
有人可以给我一些建议吗?
这是我的代码:
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]
,我认为这是导致您的应用程序崩溃的主要原因
推荐阅读
- python - 将 col 添加到 pd.df 并从第二个 df 查找值
- r - AR 中的测试和训练集分区问题
- python - 索引多级索引数据框
- python - scikit learn 中的预测和评分如何工作
- node.js - 使用jest和supertest测试koa2时Require返回一个空对象
- python - 字典列操作计数器
- apache-flink - Flink 中的事件时间窗口不触发
- python - Python用户输入作为正则表达式,如何正确执行?
- jquery - 当我在 jquery 中单击时,如何选择用于添加“活动”类的锚标记?
- c++ - &*NULL 在 C++ 中定义良好吗?