数组位置决定 Toast 消息
Array position determines Toast message
我正在尝试让 Toast 显示基于数组中的字符串的消息。我有两个数组和一个列表视图。当列表视图中的一个项目被选中时(由我的第一个数组中的字符串填充),我想要一个 toast 来显示来自第二个数组的消息。第一个数组中位置0的字符串应该对应第二个数组中位置0的字符串。
public class listView_Quiz extends AppCompatActivity {
ListView listView;
ArrayAdapter<String> adapterList;
String [] quizQuestions;
String [] quizAnswers;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_quiz);
listView = (ListView) findViewById(R.id.quizList);
quizQuestions = getResources().getStringArray(R.array.quizQuestions);
quizAnswers = getResources().getStringArray(R.array.quizToast);
adapterList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, quizQuestions) {
listView.setAdapter(adapterList);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {}
我用toString.contains就可以把它搞到一半,然后自己写一个答案。但我正在寻找一种解决方案,其中将在每个数组中检查数组位置,如果它们匹配,则打印第二个数组消息(应答消息)
if (parent.getItemAtPosition(position).toString().contains("Q1")) {
Toast.makeText(getApplicationContext(), "Answer1", Toast.LENGTH_LONG).show();
}
else if (parent.getItemAtPosition(position).toString().contains("Q2")) {
Toast.makeText(getApplicationContext(), "Answer2", Toast.LENGTH_LONG).show();
}
作为测试,我还尝试了以下的一些迭代。但是,吐司永远不会显示
String i = quizAnswers[0];
String j = quizQuestions[0];
if (parent.getItemAtPosition(position).toString().equals(j)) {
Toast.makeText(getApplicationContext(), i, Toast.LENGTH_LONG).show();
}
差不多,我想做的是
if (selectedListViewitem(position) == Array2(position)) {Toast message}
这可以吗?或者我必须使用 toString.contains(String) 吗?谢谢
尝试
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), quizAnswers[position], Toast.LENGTH_LONG).show();
}
onitemclicks 已经为您提供了位置
希望对您有所帮助。
onItemClick
方法已经包含 position
参数。您可以通过 position
从第二个数组中取出 String
并用 Toast
:
显示它
Toast.makeText(listView_Quiz.this, quizAnswers[position], Toast.LENGTH_LONG).show();
我正在尝试让 Toast 显示基于数组中的字符串的消息。我有两个数组和一个列表视图。当列表视图中的一个项目被选中时(由我的第一个数组中的字符串填充),我想要一个 toast 来显示来自第二个数组的消息。第一个数组中位置0的字符串应该对应第二个数组中位置0的字符串。
public class listView_Quiz extends AppCompatActivity {
ListView listView;
ArrayAdapter<String> adapterList;
String [] quizQuestions;
String [] quizAnswers;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_quiz);
listView = (ListView) findViewById(R.id.quizList);
quizQuestions = getResources().getStringArray(R.array.quizQuestions);
quizAnswers = getResources().getStringArray(R.array.quizToast);
adapterList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, quizQuestions) {
listView.setAdapter(adapterList);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {}
我用toString.contains就可以把它搞到一半,然后自己写一个答案。但我正在寻找一种解决方案,其中将在每个数组中检查数组位置,如果它们匹配,则打印第二个数组消息(应答消息)
if (parent.getItemAtPosition(position).toString().contains("Q1")) {
Toast.makeText(getApplicationContext(), "Answer1", Toast.LENGTH_LONG).show();
}
else if (parent.getItemAtPosition(position).toString().contains("Q2")) {
Toast.makeText(getApplicationContext(), "Answer2", Toast.LENGTH_LONG).show();
}
作为测试,我还尝试了以下的一些迭代。但是,吐司永远不会显示
String i = quizAnswers[0];
String j = quizQuestions[0];
if (parent.getItemAtPosition(position).toString().equals(j)) {
Toast.makeText(getApplicationContext(), i, Toast.LENGTH_LONG).show();
}
差不多,我想做的是
if (selectedListViewitem(position) == Array2(position)) {Toast message}
这可以吗?或者我必须使用 toString.contains(String) 吗?谢谢
尝试
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), quizAnswers[position], Toast.LENGTH_LONG).show();
}
onitemclicks 已经为您提供了位置
希望对您有所帮助。
onItemClick
方法已经包含 position
参数。您可以通过 position
从第二个数组中取出 String
并用 Toast
:
Toast.makeText(listView_Quiz.this, quizAnswers[position], Toast.LENGTH_LONG).show();