如何在文本视图中动态显示字符串列表中的项目
How to show items in list of strings in textviews dynamically
我想将列表中的项目显示给文本视图。
wordslist.java是
public class 词表 {
List<String> set1 = new ArrayList<>(Arrays.asList("sane", "said",
"dean", "ideas", "deans", "anise", "naiades", "sand", "aide",
"dais", "saned", "aside", "sedan", "idea", "aids", "ands",
"naiad", "aides", "naiads"));
// 19 words
List<String> set2 = new ArrayList<>(Arrays.asList("doer", "lord",
"rode", "role", "drool", "older", "flooder", "odor", "lore",
"rood", "fore", "rodeo", "folder", "floored", "door", "roof",
"redo", "ford", "floor", "roofed"));
// 20 words
List<String> set3 = new ArrayList<>(Arrays.asList("mead", "dale",
"lead", "dual", "lamed", "mauled", "medulla", "lade", "male",
"alum", "maul", "mall", "ladle", "malled", "dame", "made", "lame",
"laud", "meal", "medal", "allude"));
// 21 words
其实这些就是拼图的答案,大概有25个拼图(从set1到set 25)
当用户点击放弃时。它进入游戏结束 activity 因为 activity 我有按钮“显示遗漏的单词”,现在按下此按钮时,我想显示相应列表中的项目。
为了显示文字,我创建了一个带有一些文本视图的 xml 布局。
线性布局myLayout;
myLayout = (LinearLayout) findViewById(R.id.tvLayout);
myTextViewList = new ArrayList<>();
for (int i = 0; i < myLayout.getChildCount(); i++)
if (myLayout.getChildAt(i) instanceof TextView)
myTextViewList.add((TextView) myLayout.getChildAt(i));
以及何时设置文本
WordsList w = new WordsList();
TextView tv = myTextViewList.get(counter);
tv.setText(w.set1);
这是我的 logcat
01-28 20:29:42.105 11122-11122/rpa.screening.spellathon E/AndroidRuntime:致命异常:main
进程:rpa.screening.spellathon,PID:11122
java.lang.NullPointerException
在 rpa.screening.spellathon.GameOver_Screen$2.onClick(GameOver_Screen.java:44)
在 android.view.View.performClick(View.java:4487)
在 android.view.View$PerformClick.run(View.java:18746)
在 android.os.Handler.handleCallback(Handler.java:733)
在 android.os.Handler.dispatchMessage(Handler.java:95)
在 android.os.Looper.loop(Looper.java:149)
在 android.app.ActivityThread.main(ActivityThread.java:5257)
在 java.lang.reflect.Method.invokeNative(本机方法)
在 java.lang.reflect.Method.invoke(Method.java:515)
在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633)
在 dalvik.system.NativeStart.main(本机方法)
编辑 2:
Gameover_screen
missedWords.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent iin = getIntent();
Bundle b = iin.getExtras();
if (b != null) {
String passed_score = (String) b.get("score");
displayScore.setText(passed_score);
int passed_set = (int) b.get("set"); // line 44
String s = Integer.valueOf(passed_set).toString();
Intent ii = new Intent(GameOver_Screen.this, MissedWords.class);
ii.putExtra("sEt", s);
startActivity(ii);
}
}
});
解决了我的问题。
真正的问题在这里,
tv.setText(w.set1);
但是当我把它改成
String set1 = w.set1.get(i);
tv.setText(set1);
问题解决了。
我想将列表中的项目显示给文本视图。
wordslist.java是
public class 词表 {List<String> set1 = new ArrayList<>(Arrays.asList("sane", "said", "dean", "ideas", "deans", "anise", "naiades", "sand", "aide", "dais", "saned", "aside", "sedan", "idea", "aids", "ands", "naiad", "aides", "naiads")); // 19 words List<String> set2 = new ArrayList<>(Arrays.asList("doer", "lord", "rode", "role", "drool", "older", "flooder", "odor", "lore", "rood", "fore", "rodeo", "folder", "floored", "door", "roof", "redo", "ford", "floor", "roofed")); // 20 words List<String> set3 = new ArrayList<>(Arrays.asList("mead", "dale", "lead", "dual", "lamed", "mauled", "medulla", "lade", "male", "alum", "maul", "mall", "ladle", "malled", "dame", "made", "lame", "laud", "meal", "medal", "allude")); // 21 words
其实这些就是拼图的答案,大概有25个拼图(从set1到set 25)
当用户点击放弃时。它进入游戏结束 activity 因为 activity 我有按钮“显示遗漏的单词”,现在按下此按钮时,我想显示相应列表中的项目。
为了显示文字,我创建了一个带有一些文本视图的 xml 布局。
线性布局myLayout; myLayout = (LinearLayout) findViewById(R.id.tvLayout);以及何时设置文本
myTextViewList = new ArrayList<>();
for (int i = 0; i < myLayout.getChildCount(); i++)
if (myLayout.getChildAt(i) instanceof TextView)
myTextViewList.add((TextView) myLayout.getChildAt(i));
WordsList w = new WordsList();
TextView tv = myTextViewList.get(counter);
tv.setText(w.set1);
这是我的 logcat
01-28 20:29:42.105 11122-11122/rpa.screening.spellathon E/AndroidRuntime:致命异常:main 进程:rpa.screening.spellathon,PID:11122 java.lang.NullPointerException 在 rpa.screening.spellathon.GameOver_Screen$2.onClick(GameOver_Screen.java:44) 在 android.view.View.performClick(View.java:4487) 在 android.view.View$PerformClick.run(View.java:18746) 在 android.os.Handler.handleCallback(Handler.java:733) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:149) 在 android.app.ActivityThread.main(ActivityThread.java:5257) 在 java.lang.reflect.Method.invokeNative(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633) 在 dalvik.system.NativeStart.main(本机方法)
编辑 2: Gameover_screen
missedWords.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent iin = getIntent();
Bundle b = iin.getExtras();
if (b != null) {
String passed_score = (String) b.get("score");
displayScore.setText(passed_score);
int passed_set = (int) b.get("set"); // line 44
String s = Integer.valueOf(passed_set).toString();
Intent ii = new Intent(GameOver_Screen.this, MissedWords.class);
ii.putExtra("sEt", s);
startActivity(ii);
}
}
});
解决了我的问题。
真正的问题在这里,
tv.setText(w.set1);
但是当我把它改成
String set1 = w.set1.get(i);
tv.setText(set1);
问题解决了。