使用EditText搜索ListView但播放错误的声音

时间:2017-05-27 11:24:09

标签: android listview

 public static ListView lv1;


    public String[] soundnamen = {"text1","text2"};
    public int[] soundId = {R.raw.sound1,R.raw.sound2};

    public ArrayAdapter<String> listapdapter;




    public Intent teilintent;
    EditText inputSearch1;
    View contentView;


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        contentView = inflater.inflate(R.layout.fragment_main, container, false);

        return contentView;


    }

    @Override
    public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {



        inputSearch1 = (EditText) view.findViewById(R.id.inputSearch);

        lv1 = (ListView) view.findViewById(R.id.listView1);



        inputSearch1.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                fragment1.this.listapdapter.getFilter().filter(s.toString().toLowerCase());
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });




        listapdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, soundnamen);
        lv1.setAdapter(listapdapter);
        lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View view1, int arg2,
                                    long arg3) {

                mp1.release();
                mp1 = MediaPlayer.create(getActivity(), soundId[lv1.getPositionForView(view1)]);

                mp1.start();
          }
                        });
                    }
                });

当我使用EditText搜索列表视图时,它只显示正确的项目,但它播放的声音错误。如何解决?我必须使用BaseAdapter吗?我搜索了整个互联网,并没有发现任何相关信息。

1 个答案:

答案 0 :(得分:0)

你的位置可能不对。

替换这个:  mp1 = MediaPlayer.create(getActivity(),soundId [lv1.getPositionForView(view1)]); 同  mp1 = MediaPlayer.create(getActivity(),soundId [arg2]);

如有任何疑问,请与我联系!