use*_*074 7 android hashmap treemap android-intent
我需要你的帮助,我无法理解发生了什么?
我正在尝试在2个活动之间发送TreeMap,代码是这样的:
class One extends Activity{
public void send(){
Intent intent = new Intent(One.this, Two.class);
TreeMap<String, String> map = new TreeMap<String, String>();
map.put("1","something");
intent.putExtra("map", map);
startActivity(intent);
finish();
}
}
class Two extends Activity{
public void get(){
(TreeMap<String, String>) getIntent().getExtras().get("map");//Here is the problem
}
}
Run Code Online (Sandbox Code Playgroud)
这回到我身边HashMap无法强制转换为TreeMap.什么
作为 @Jave 建议的替代方案,如果您确实需要数据结构为 a TreeMap,只需使用适当的构造函数将另一个映射作为数据源。因此,在接收端 ( Two) 执行以下操作:
public class Two extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TreeMap<String, String> map = new TreeMap<String, String>((Map<String, String>) getIntent().getExtras().get("map"));
}
}
Run Code Online (Sandbox Code Playgroud)
但是,根据您的项目,您可能不必担心确切的Map实现。因此,您可以直接转换为Map接口:
public class Two extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Map<String, String> map = (Map<String, String>) getIntent().getExtras().get("map");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2984 次 |
| 最近记录: |