您好我是编程的新手,并且在我复制可扩展列表的教程并且已经停留超过1周之后开始有很多乐趣。
我正在尝试使用可扩展列表中的最终选择,并将此信息传递给我的新活动。它现在设置的方式是我可以传递字符串值id(我不想要这个)我想要点击的实际字符串。
public class MainActivity extends Activity {
public final static String ID_EXTRA = "com.example.chris.prontopages2.MainActivity.";
HashMap<String, List<String>> Movies_category;
List<String> Movies_list;
ExpandableListView Exp_list;
MoviesAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Exp_list = (ExpandableListView) findViewById(R.id.exp_list);
Movies_category = DataProvider.getInfo();
Movies_list = new ArrayList<String>(Movies_category.keySet());
adapter = new MoviesAdapter(this, Movies_category, Movies_list);
Exp_list.setAdapter(adapter);
Exp_list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
Intent i = new Intent("Main22Activity.class");
i.putExtra(ID_EXTRA, String.valueOf(id));
startActivity(i);
return false;
}
});
}
答案 0 :(得分:0)
您可以使用以下内容获取给定位置的元素
ExpandableListAdapter itemAdapter = parent.getExpandableListAdapter();
String selectedItem = (String) itemAdapter.getChild(groupPosition, childPosition);
然后按照你的意图传递它。
答案 1 :(得分:0)
您无需传递子选择的ID。试试这个会对你有帮助。
Exp_list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
String movieName = Movies_category.get(Movies_list.get(groupPosiion)).get(childPosition)
Intent i = new Intent("Main22Activity.class");
i.putExtra(ID_EXTRA, movieName);
startActivity(i);
return false;
}
});
并在其他活动中获得额外费用。