我正在尝试使用表单中已有的一些数据启动Android原生"添加或编辑联系人"活动.这是我目前使用的代码:
Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
intent.putExtra(Insert.NAME, "A name");
intent.putExtra(Insert.PHONE, "123456789");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
我的问题是我想指定名字和姓氏.我还注意到有一个StructuredName类,它包含我需要的所有字段的常量标识符.不幸的是,我无法将StructuredName字段添加到intent ...
有人知道这是如何正确完成的吗?
注意:我不是试图直接添加联系人,但我想打开一个填充的"添加联系人"对话框!
谢谢你
正如标题所示,我想做以下,但编译器不会让我:
public class MyClass
{
private List<SomeSupertype> myList;
public MyClass<T> (ICollection<T> elements) where T : SomeSupertype
{
myList = new List<SomeSuperType> ();
foreach (SomeSupertype element in elements) {
myList.Add (element);
}
}
}
Run Code Online (Sandbox Code Playgroud)
不知何故,似乎不可能将泛型参数添加到本身不是通用的类的构造函数中.请注意,MyClass应该是非泛型类型,因为客户端在构造后不必区分不同类型的MyClass.
任何人都可以帮我解决这个问题吗?这有可能吗?它肯定是在Java :)
编辑:我忘了提到我使用的是.NET 3.5,因此不支持协变泛型.
我有兴趣为(小)网格图解决TSP.任何类型的库都可以为我做,但这似乎比预期更难.我尝试了几个我在那里找到的解算器(包括协调器),但是当三角形不等式不成立时,它们似乎都有问题.
例如,我希望求解器为图形输出(0,1,2,1,4,3)(具有单位边缘权重),如下所示:
0-1-2
| |
3-4
Run Code Online (Sandbox Code Playgroud)
在这个特殊情况下,我告诉concorde边缘(2,4)的重量为1000,并且concorde迅速产生了成本1004的巡回赛(0,1,2,4,3).这显然不是我想要的.
理想情况下,Java中会有一些简单的(可能是暴力)实现,但实际上可行的任何东西都可以.任何人都可以指向我一些代码或者我真的必须自己去实现吗?
编辑:同样,重要的是我得到一个精确的解决方案,而不是一些近似.
Edit2:的确,这似乎不是TSP.我想要找到的是一个访问所有顶点的最短的闭路.