0
我正在创建一个简单的音乐流应用原型,它使用ExpandableListView来显示不同的音乐类别和不同的收音机。(Android)ExpandableListView - 点击儿童时将链接传递给新活动
我遵循的扩展列表的代码的教程,它看起来像这样:
public class MainActivity extends Activity {
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get the listview
expListView = (ExpandableListView) findViewById(R.id.lvExp);
// preparing list data
prepareListData();
listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
// setting list adapter
expListView.setAdapter(listAdapter);
//Detects child item click
expListView.setOnChildClickListener(new OnChildClickListener(){
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Toast.makeText(
getApplicationContext(),
listDataHeader.get(groupPosition)
+ " : "
+ listDataChild.get(
listDataHeader.get(groupPosition)).get(
childPosition), Toast.LENGTH_SHORT)
.show();
return false;
}
});
//ends OnCreate
}
/*
* Preparing the list data
*/
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
// Adding child data
listDataHeader.add("Alternative");
listDataHeader.add("Ambient");
listDataHeader.add("Blues");
listDataHeader.add("Classical");
listDataHeader.add("Hip-Hop");
listDataHeader.add("Jazz");
listDataHeader.add("Rock");
listDataHeader.add("Test");
// Adding child data
List<String> Alternative = new ArrayList<String>();
Alternative.add("WTH.Alternative");
Alternative.add("This Is Corrosion");
List<String> Ambient = new ArrayList<String>();
List<String> Blues = new ArrayList<String>();
Blues.add("Belly Up 4 Blues");
List<String> Classical = new ArrayList<String>();
List<String> HipHop = new ArrayList<String>();
List<String> Jazz = new ArrayList<String>();
List<String> Rock = new ArrayList<String>();
Rock.add("SoR Radio");
Rock.add("Megarock Radio");
Rock.add("Aural Moon");
List<String> Test = new ArrayList<String>();
Test.add("Radio with Link that I know it works");
//http://usa8-vn.mixstream.net:8138
listDataChild.put(listDataHeader.get(0), Alternative); // Header, Child data
listDataChild.put(listDataHeader.get(1), Ambient);
listDataChild.put(listDataHeader.get(2), Blues);
listDataChild.put(listDataHeader.get(3), Classical);
listDataChild.put(listDataHeader.get(4), HipHop);
listDataChild.put(listDataHeader.get(5), Jazz);
listDataChild.put(listDataHeader.get(6), Rock);
listDataChild.put(listDataHeader.get(7), Test);
}
}
我还使用适配器类,它提供所需的方法来呈现列表视图。
我的问题是,在这一刻,当我从Expandable列表中单击一个子节点时,我只是Toast一条消息。我现在想要做的是,当我点击一个孩子节点时,我想传递一个链接,我必须以某种方式将该孩子关联到另一个不同的活动,我将从链接中播放音乐(每个孩子都会有不同的链接相关)。
我已经知道如何使用Android MediaPlayer从资源进行流式传输,我唯一的问题是在单击列表的子节点时绑定和发送信息。
任何想法如何做到这一点?