Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 搜索播放列表并播放歌曲_Android_Listview_Search_Playlist - Fatal编程技术网

Android 搜索播放列表并播放歌曲

Android 搜索播放列表并播放歌曲,android,listview,search,playlist,Android,Listview,Search,Playlist,我正在尝试在音乐播放器中实现搜索 public class PlayListActivity extends ListActivity { public ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>(); public String songList[]; // Listview Adapter Arra

我正在尝试在音乐播放器中实现搜索

 public class PlayListActivity extends ListActivity {
public ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
public String songList[];

    // Listview Adapter
    ArrayAdapter<String> adapter;
    // Search EditText
    EditText inputSearch;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.playlist);

    ArrayList<HashMap<String, String>> songsListData = new ArrayList<HashMap<String, String>>();

    SongsManager plm = new SongsManager(getApplicationContext());
    // get all songs
    this.songsList = plm.getPlayList();
    // looping through playlist
    for (int i = 0; i < songsList.size(); i++) {
        // creating new HashMap
        HashMap<String, String> song = songsList.get(i);
        // adding HashList to ArrayList
        songsListData.add(song);
    }

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

    // Adding menuItems to ListView
final ListAdapter adapter = new SimpleAdapter(this, songsListData,
R.layout.playlist_item, new String[] { "songTitle" }, new int[] {
                    R.id.songTitle });
    setListAdapter(adapter);

    // selecting single ListView item
    ListView lv = getListView();
    lv.setDivider(this.getResources().getDrawable(R.drawable.transperent_color));
    lv.setDividerHeight(1);
    // listening to single listitem click
    lv.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
    // getting listitem index
        int songIndex = position;

    // Starting new intent
   Intent in = new Intent(getApplicationContext(),
    MusicPlayerActivity.class);
        // Sending songIndex to PlayerActivity
        in.putExtra("songIndex", songIndex);
        setResult(100, in);
        // Closing PlayListView
        finish();
        }
    });

/**
     * Enabling Search Filter
     * */
    inputSearch.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
            // When user changed the Text
            Log.v("LOG",cs.toString());
            ((Filterable) adapter).getFilter().filter(cs);  

        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub                      
        }
    });

}
}
公共类播放活动扩展了ListActivity{
public ArrayList songsList=new ArrayList();
公共字符串歌曲列表[];
//列表视图适配器
阵列适配器;
//搜索编辑文本
编辑文本输入搜索;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.playlist);
ArrayList songsListData=新的ArrayList();
SongsManager plm=新的SongsManager(getApplicationContext());
//获取所有歌曲
this.songsList=plm.getPlayList();
//循环播放列表
对于(int i=0;i
我能搜索这首歌。。但如果我播放那首歌,会播放其他歌曲(根据位置编号) 如何更改它,使其播放我搜索的特定歌曲


感谢您的时间和帮助!:)

这一定是位置问题,我想当你搜索歌曲之后,再通知你的listview。我该怎么做?请帮我修改相应的代码。感谢您在搜索时在listview或AutoCompleteTextView中实际单击的位置,您能澄清一下吗?listview是我单击的位置,当您使用搜索结果值再次搜索后,设置listview适配器。并使adapter.notifiDatasetChanged();它将再次设置listview。