【问题标题】:Do setOnItemClickListener in listView which is made by of Arrayadapter [closed]在由Arrayadapter制作的listView中执行setOnItemClickListener [关闭]
【发布时间】:2019-10-29 22:01:51
【问题描述】:

请帮帮我,我想在点击 listView 的“关于我们”、“更多来自我们”时显示其他活动,我该怎么做?

   ArrayList<Word> words = new ArrayList<Word>();

    words.add(new Word("About Us", R.id.main_images));
    words.add(new Word("More From Us", R.id.main_images));

    WordAdapter adapter = new WordAdapter(this, words);

    ListView listView = findViewById(R.id.list);

    listView.setAdapter(adapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            //what should I write here, so I can go other when clicked in listview
        }
    });

【问题讨论】:

标签: java android android-studio listview arraylist


【解决方案1】:

您需要创建一个intent 来执行此操作。

阅读此链接以了解如何开始另一个活动:https://developer.android.com/training/basics/firstapp/starting-activity

【讨论】:

    【解决方案2】:

    你可以像这样在onItemClick上启动一个新的Activity

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
              Word word = words.get(i); // it's the selected word
              Intent intent = new Intent(CurrentActivity.this, DetailsActivity.class);
              intent.putExtra("word", word);
              startActivity(intent);
            }
        });
    

    让你的Word类实现Serializable/Parcelable,这样只有你可以发送它并在另一个Activity类中提取。

    DetailsActivity(或您为第二个Activity 起的任何名称)中,您可以在OnCreate 方法中从extra like 中提取所选单词。

    Word word = (Word)(getIntent().getSerializableExtra("word"));
    // Work on Word
    

    您可以阅读更多here

    @whoever 否决答案,伙计,我们只是想提供帮助。我知道你没有收到关于礼貌的通知。答案和问题您可能不清楚,但这里的答案是相关的并且与问题相关。

    【讨论】:

    • 我想在点击“更多形式我们”、“关于我们”时表达意图..请帮助
    • 我已经编辑了答案。这应该是可以理解的。
    【解决方案3】:

    在你的onItemClick

    Switch(i){
     case 0:
        // "About Us" is the first item in your list(position 0) and you can call it here, like
        startActivity(new Intent(this,AboutUsActivity.class))
        break;
    case 1:
        // "More From Us" is the second item in your list(position 1) and you can call it here, like
        startActivity(new Intent(this,MoreAboutUs.class))
        break;
    

    }

    【讨论】:

    • 错误显示在“switch (i)”下,案例 0:,案例 1 并通过说“无法解决”来中断
    • 我是手写的,但答案肯定是这样的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    相关资源
    最近更新 更多