我正在开发一个将数据存储在SQLite数据库中的Android应用程序.我的问题是,当您使用模拟器时,此数据库文件存储在文件系统中的哪个位置?
我已经看到它存储在
/data/data/package_name/databases
但我需要知道实际映射到我本地机器硬盘的位置.即使在关闭机器之后,数据库仍会在模拟器的多次运行中持续存在,因此它不能只驻留在RAM中...
我试图覆盖默认ToggleButton外观.这是定义以下内容的XML ToggleButton:
<ToggleButton android:id="@+id/FollowAndCenterButton"
android:layout_width="30px"
android:layout_height="30px"
android:textOn="" android:textOff="" android:layout_alignParentLeft="true"
android:layout_marginLeft="5px"
android:layout_marginTop="5px" android:background="@drawable/locate_me"/>
Run Code Online (Sandbox Code Playgroud)
现在,我们有两个30 x 30图标,我们想要用于点击/未点击状态.现在我们有代码根据状态以编程方式更改背景图标:
centeredOnLocation.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (centeredOnLocation.isChecked()) {
centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me_on));
} else {
centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me));
}
}
});
Run Code Online (Sandbox Code Playgroud)
显然我正在寻找一种更好的方法来做到这一点.我试图为背景图像制作一个选择器,它会自动在状态之间切换:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/locate_me" /> <!-- default -->
<item android:state_checked="true"
android:drawable="@drawable/locate_me_on" /> <!-- pressed -->
<item android:state_checked="false"
android:drawable="@drawable/locate_me" /> <!-- unchecked -->
Run Code Online (Sandbox Code Playgroud)
但这不起作用; 阅读ToggleButtonAPI(http://developer.android.com/reference/android/widget/ToggleButton.html),看来唯一继承的xml属性是
XML Attributes
Attribute Name Related Method Description
android:disabledAlpha The alpha to apply to the …Run Code Online (Sandbox Code Playgroud) 在Scala中似乎缺乏对打印数组的支持.如果您打印一个,您将获得Java中的默认垃圾:
scala> val array = Array.fill(2,2)(0)
array: Array[Array[Int]] = Array(Array(0, 0), Array(0, 0))
scala> println(array)
[[I@d2f01d
Run Code Online (Sandbox Code Playgroud)
此外,您不能使用java.util.Arrays类中的Java toString/deepToString方法:(或者至少我无法弄清楚)
scala> println(java.util.Arrays.deepToString(array))
<console>:7: error: type mismatch;
found : Array[Array[Int]]
required: Array[java.lang.Object]
println(java.util.Arrays.deepToString(array))
Run Code Online (Sandbox Code Playgroud)
我能找到的打印2D阵列的最佳解决方案是执行以下操作:
scala> println(array.map(_.mkString(" ")).mkString("\n"))
0 0
0 0
Run Code Online (Sandbox Code Playgroud)
有没有更惯用的方法呢?
这是我的点图的一个非常简化的例子:
strict digraph graphName {
A->B
B->A
}
Run Code Online (Sandbox Code Playgroud)
这创造了

相反,我希望在A和B之间显示一条边,但是有一个双箭头.我知道如何将双箭头作为全局选项:
strict digraph graphName {
edge [dir="both"]
A->B
B->A
}
Run Code Online (Sandbox Code Playgroud)
但这看起来非常难看,而且我的所有优势都不应该是双头的.

如果我对图形进行更多处理并自己检测双引用并用单个边缘替换两条边缘,则看起来没问题.但我宁愿不必做这个额外的步骤
strict digraph graphName {
A->B [dir="both"]
}
Run Code Online (Sandbox Code Playgroud)

更好的解决方案?
我以前习惯用C语言编写代码,发现这个scanf函数非常有用.不幸的是,C#中没有相应的东西.
我正在使用它来解析半结构化文本文件.
我在这里找到了一个有趣的scanf实施例子.不幸的是,它看起来陈旧且不完整.
有谁知道scanfC#实现?或者至少可以作为逆转的东西string.Format?
让Python和Java相互配合的最佳方法是什么?
我有点复杂的情况.我会尽力用图片和文字来解释.这是当前的系统架构:
当前的系统架构http://i50.tinypic.com/2s6lutk.png
我们有一个用Java编写的基于代理的建模仿真.它可以选择本地写入CSV文件,也可以通过与Java服务器的连接远程写入HDF5文件.每次模拟运行超过一千兆字节的数据,我们运行模拟数十次.我们需要能够聚合同一场景的多次运行(使用不同的随机种子)以查看一些趋势(例如,min,max,median,mean).可以想象,试图移动所有这些CSV文件是一场噩梦; 每次运行都会生成多个文件,就像我说的一些文件非常庞大.这就是我们一直试图转向HDF5解决方案的原因,其中研究的所有数据都存储在一个地方,而不是分散在几十个纯文本文件中.此外,由于它是二进制文件格式,与未压缩的CSVS相比,它应该能够节省大量空间.
如图所示,我们对来自仿真的原始输出数据进行的当前后处理也在Java中进行,并读取由本地输出生成的CSV文件.此后处理模块使用JFreeChart创建与模拟相关的一些图表和图形.
正如我前面提到的,当我们从模拟中生成越来越多的数据时,CSV实际上是站不住脚的,并且不能很好地扩展.此外,后处理代码所做的工作比它本来应该做的更多,基本上执行非常非常差的人的关系数据库的工作(基于外键(唯一的代理ID)在'表'(csv文件)之间进行连接在该系统中,以其他方式可视化数据也很困难(例如,Prefuse,Processing,JMonkeyEngine获取MatLab或SPSS中的一些原始数据子集).
我的小组决定我们真的需要一种过滤和查询我们拥有的数据的方法,以及执行跨表连接.鉴于这是一次写入,多次读取的情况,我们真的不需要真正的关系数据库的开销; 相反,我们只需要一些方法在HDF5文件上放置一个更好的前端.我发现了一些关于此的论文,比如描述如何使用XQuery作为HDF5文件的查询语言,但是本文描述了编写一个编译器以将XQuery/XPath转换为本机HDF5调用,超出了我们的需要.输入PyTables.它似乎正是我们所需要的(提供两种不同的查询数据的方式,通过Python列表理解或通过内核(C级)搜索.
我设想的建议架构是: Envisioned architecture http://i46.tinypic.com/9aseg3.png
我不确定该怎么做的是将用于查询的python代码与提供HDF5文件的Java代码以及执行数据后处理的Java代码链接在一起.显然,我会想要重写大部分隐式执行查询的后处理代码,而是让优秀的PyTables更优雅地完成这项工作.
一个简单的谷歌搜索为Java和Python之间的通信提供了一些选择,但我对这个主题是如此新颖,我正在寻找一些实际的专业知识和批评建议的架构.看起来Python进程应该与Datahose在同一台机器上运行,这样大的.h5文件就不必通过网络传输,而是将它的小得多的过滤视图传输给客户端. Pyro似乎是一个有趣的选择 - 有没有人有这方面的经验?
我正在尝试用Java编写Minesweeper克隆以获得乐趣.我有一个JButtons网格,我将更改其标签以表示危险计数,标志等.
我的问题是,我不知道如何右键单击JButton来按下按钮.我做了以下事情:
button.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
boolean mine = field.isMine(x, y);
if (e.isPopupTrigger()) {
button.setText("F");
}
else {
if (mine) {
button.setText("X");
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
这似乎根本不起作用; "F"从未显示,只有"X"部分.但更重要的是,这对于按下按钮没有任何作用.
编辑:Macs有弹出触发器发生在mousePress上,而不是mouseClick.
编辑:这是我根据接受的答案制定的解决方案:
button.addMouseListener(new MouseAdapter(){
boolean pressed;
@Override
public void mousePressed(MouseEvent e) {
button.getModel().setArmed(true);
button.getModel().setPressed(true);
pressed = true;
}
@Override
public void mouseReleased(MouseEvent e) {
//if(isRightButtonPressed) {underlyingButton.getModel().setPressed(true));
button.getModel().setArmed(false);
button.getModel().setPressed(false);
if (pressed) {
if (SwingUtilities.isRightMouseButton(e)) {
button.setText("F");
}
else {
button.setText("X");
}
}
pressed = false;
}
@Override
public void mouseExited(MouseEvent e) …Run Code Online (Sandbox Code Playgroud) 我对这个问题有类似的问题,但略有不同.我编译了一个.so库来与JNI一起使用.因为它很大(15 MB),所以我把它放在SDCard而不是标准的应用程序中.
该文件名为libSample.so,位于 /data/library/libSample.so
我在静态初始化块中加载它:
try {
File sdcard = Environment.getExternalStorageDirectory();
File libraryLoc = new File(sdcard.getAbsolutePath() + "/library/libSample.so");
Log.i("Library", "Does the library exist?" + libraryLoc.exists());
System.load(libraryLoc.getAbsolutePath());
}
catch (UnsatisfiedLinkError e) {
Log.e("Translator", e.getMessage());
Log.e("Translator", e.toString());
}
Run Code Online (Sandbox Code Playgroud)
这是相关的logcat输出:
09-02 16:42:58.882: DEBUG/dalvikvm(4185): Trying to load lib /data/data/com.example.hellojni/lib/libhello-jni.so 0x434fb6f8
09-02 16:42:58.892: DEBUG/dalvikvm(4185): Added shared lib /data/data/com.example.hellojni/lib/libhello-jni.so 0x434fb6f8
09-02 16:42:58.892: DEBUG/dalvikvm(4185): No JNI_OnLoad found in /data/data/com.example.hellojni/lib/libhello-jni.so 0x434fb6f8
09-02 16:42:58.892: INFO/Library(4185): Library exists: true
09-02 16:42:58.902: INFO/Library(4185): Library can be read: true
09-02 …Run Code Online (Sandbox Code Playgroud) 我需要对各种原始类型执行算法; 算法基本相同,但变量的类型除外.所以,例如,
/**
* Determine if <code>value</code> is the bitwise OR of elements of <code>validValues</code> array.
* For instance, our valid choices are 0001, 0010, and 1000.
* We are given a value of 1001. This is valid because it can be made from
* ORing together 0001 and 1000.
* On the other hand, if we are given a value of 1111, this is invalid because
* you cannot turn on the second bit from left by ORing together …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个处理GPS时间转换的Java库.
GPS时间有一个1980年1月6日的时代,并没有闰秒,因此它与更标准的时间表示不同.以下是维基百科的相关说明:
虽然大多数时钟与协调世界时(UTC)同步,但卫星上的原子钟设置为GPS时间.不同之处在于未校正GPS时间以匹配地球的旋转,因此它不包含闰秒或定期添加到UTC的其他校正.GPS时间设定为与1980年的协调世界时(UTC)相匹配,但后来发生了分歧.缺少校正意味着GPS时间与国际原子时(TAI)(TAI-GPS = 19秒)保持恒定的偏移.对板载时钟执行周期性校正以校正相对论效应并使它们与地时钟保持同步.
GPS导航消息包括GPS时间和UTC之间的差异,由于闰秒在2008年12月31日添加到UTC,因此截至2009年为15秒.接收器从GPS时间减去此偏移以计算UTC和特定时区值.在收到UTC偏移消息之前,新的GPS单元可能无法显示正确的UTC时间.GPS-UTC偏移场可以容纳255闰秒(8位),考虑到地球自转的当前变化速率(大约每18个月引入一闰秒),应足以持续到大约2300年.
与公历的年,月,日格式相反,GPS日期表示为星期数和秒周数.周数作为C/A和P(Y)导航消息中的十位字段发送,因此每1,024周(19.6年)再次变为零.GPS周0从1980年1月6日00:00:00 UTC(00:00:19 TAI)开始,周数在1999年8月21日23:59:47 UTC时首次变为零(00 :00:19 TAI,1999年8月22日).要确定当前的格里高利日期,必须为GPS接收器提供大致日期(在3,584天内)以正确转换GPS日期信号.为了解决这个问题,现代化的GPS导航消息使用13位字段,每8,192周(157年)只重复一次,
我宁愿不必自己动手; 我没有在Joda时间看到任何表明它可以处理GPS编码日期的东西..有没有办法扩展它?