调试setOnItemClickListener不起作用

时间:2018-04-11 08:16:40

标签: android onitemclicklistener

我有setOnItemClickListener没有被调用,我无法找出原因。

该代码是在线课程的一部分,其功能解决方案代码可以找到here。我遇到问题的代码的特定部分在NumbersActivity.java中,并且是

// Set a click listener to play the audio when the list item is clicked on
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                // Release the media player if it currently exists because we are about to
                // play a different sound file
                releaseMediaPlayer();

                // Get the {@link Word} object at the given position the user clicked on
                Word word = words.get(position);

                // Create and setup the {@link MediaPlayer} for the audio resource associated
                // with the current word
                mMediaPlayer = MediaPlayer.create(NumbersActivity.this, word.getAudioResourceId());

                // Start the audio file
                mMediaPlayer.start();

                // Setup a listener on the media player, so that we can stop and release the
                // media player once the sound has finished playing.
                mMediaPlayer.setOnCompletionListener(mCompletionListener);
            }
        });

当点击列表项但我的没有时,该应用程序(如上所述)具有播放音频文件所需的行为。

我甚至尝试将我的NumbersActivity.java版本中的整个替换为应用程序的功能,以查看它是否有效(尝试并本地化错误)但没有成功。记录setOnItemClickListener是没用的,因为它没有被调用(我的代码与上面发布的代码完全相同)。

我在这里阅读了其他答案(thisthis),但那里提供的解决方案无效(我的代码已经有了这些解决方案)。

最后,我的应用程序和“解决方案代码”应用程序中raw目录的结构完全相同(认为它可能与创建列表项对象时找不到资源有关)。

我不知道出了什么问题或其他调试方式,所以如果有人有想法,我真的很感激它!

content_list.xml

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/root_list_view"
    android:orientation="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.miwok.NumbersActivity" />

single_view.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="88dp"
    android:layout_width="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/numbers_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="16dp"
        android:paddingRight="16dp"
        android:paddingLeft="16dp"
        android:paddingBottom="16dp"
        android:src="@mipmap/ic_launcher" />


    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/single_view"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/numbers_image">

        <TextView
            android:id="@+id/text_view_miwok"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginLeft="16dp"
            android:textColor="@color/white"
            android:textStyle="bold"/>

        <TextView
            android:id="@+id/text_view_english"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            android:textColor="@color/white"
            android:layout_marginLeft="16dp" />

    </LinearLayout>

    <Button
        android:id="@+id/play_button"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="Nothing"/>


</LinearLayout>

编辑:添加评论的答案。

1)本课程使用ListView进行教育,后来会介绍RecyclerView。解决方案代码使用ListView,但它可以工作。

2)添加了XML。

3)活动代码atm是在问题开头的链接中复制粘贴的。

0 个答案:

没有答案