【问题标题】:Array position determines Toast message数组位置决定 Toast 消息
【发布时间】:2026-01-05 20:00:01
【问题描述】:

我正在尝试让 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)?谢谢

【问题讨论】:

  • 请将答案标记为正确以结束问题。

标签: android arrays listview android-toast


【解决方案1】:

试试

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
       Toast.makeText(getApplicationContext(), quizAnswers[position], Toast.LENGTH_LONG).show();
}

onitemclicks 已经为您提供了位置

希望对你有帮助。

【讨论】:

  • 我怎么会忽略这么简单的答案!感谢您的帮助
  • 不客气,请点赞并标记正确答案
【解决方案2】:

onItemClick 方法已经包含position 参数。您可以通过position 从第二个数组中取出String 并用Toast 显示它:

Toast.makeText(listView_Quiz.this, quizAnswers[position], Toast.LENGTH_LONG).show();

【讨论】: