小编nul*_*ull的帖子

如何从android XML中的<string-array>资源访问<item>?

我有一个用于PreferenceActivity的xml文件(/res/xml/setting.xml):

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
        <PreferenceCategory android:title="Main Settings">
            <ListPreference
                android:title="Background Image"
                android:summary="Set the background image"
                android:key="key_background"
                android:entries="@array/background"
                android:entryValues="@array/background_values" 
                android:defaultValue="winter.png" /> 
        </PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

然后我有另一个xml文件"/res/values/string.xml":

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="background">
        <item>Winter</item>
        <item>Desert</item>
    </string-array>

    <string-array name="background_values">
        <item>winter.png</item>
        <item>desert.png</item>
    </string-array>

</resources>
Run Code Online (Sandbox Code Playgroud)

请参阅setting.xml中的ListPreference,我想android:defaultValue设置为winter.png.但是我也不想在xml中设置硬编码/常量值,所以我尝试了各种值,如" @array/background_values/0"," @array/background_values[0]"等...但都失败了.

所以,问题是:

  1. 访问其他xml中的字符串数组资源项的正确语法是什么?
  2. 如何确定它android:defaultValue是否正常工作?
  3. 有没有关于@array语法的文档?我找不到任何东西.

xml android

5
推荐指数
1
解决办法
8234
查看次数

如何解决Scala中采用相同输入类型的歧义隐式转换方法?

我在这里阅读了其他相同的问题,但是对于某些内置类来说,这种情况太具体了。我想在这里问一个简单的案例,希望能得到一般的答案。

所以我有这段代码:

object ScalaApp {    
    case class Point(x: Int, y: Int);

    case class Rational(n: Int, d: Int) {
        def \(i: Int): List[Int] = n :: d:: i :: Nil
    }

    case class MyObject(x: Int, y: Int, z: Int) {
        def \(i: Int): List[Int] = x :: y:: i :: Nil
    }

    implicit def pointToRational(p: Point): Rational = Rational(p.x + 1, p.y * 2)

    implicit def pointToMyObject(p: Point): MyObject = MyObject(p.x, p.y, p.x+p.y)

    def main(args: Array[String]) {
        val p …
Run Code Online (Sandbox Code Playgroud)

scala implicit-conversion

5
推荐指数
1
解决办法
2384
查看次数

如何在Scala的Map List中按键值对值进行求和并对它们进行分组?

我有一张地图清单:

val list = List(
  Map("id" -> "A", "value" -> 20, "name" -> "a"),
  Map("id" -> "B", "value" -> 10, "name" -> "b"),
  Map("id" -> "A", "value" -> 5, "name" -> "a"),
  Map("id" -> "C", "value" -> 1, "name" -> "c"),
  Map("id" -> "D", "value" -> 60, "name" -> "d"),
  Map("id" -> "C", "value" -> 3, "name" -> "c")
)
Run Code Online (Sandbox Code Playgroud)

我想要以最有效的方式对值进行求和value并按id值分组,以便它变为:

Map(A -> 25, B -> 10, C -> 4, D -> 60)
Run Code Online (Sandbox Code Playgroud)

scala

5
推荐指数
2
解决办法
5715
查看次数

在Scala中替换if-without-else

您通常如何以功能方式在Scala中替换if-without-else?

例如,像这样的命令式典型模式:

var list = List("a", "b", "c")

if (flag) { // flag is boolean variable
    // do something inside if flag is true
    list = "x" :: list
}
// if flag is false, nothing happened
Run Code Online (Sandbox Code Playgroud)

我在想这样使它起作用:

val tempList = List("a", "b", "c")
val list = if (flag) "x" :: tempList else tempList
Run Code Online (Sandbox Code Playgroud)

如果不使用中间变量,是否会有更好的方法?

因此,任何人都可以分享如何在scala中消除if-without-else?

functional-programming scala

5
推荐指数
1
解决办法
1788
查看次数

Java Map类,可以包含一个值的两个或多个键

我正在寻找一个可以包含一个值的两个或更多键的Java Map类.它几乎像apache常见集合中的MultiKeyMap,但它只能使用其中一个键来检索值而不是使用所有键.

例如,使用键"key1"和"key2"在地图中为值"Hello World"创建一个条目:

    map.put("Hello World", "key1", "key2");
Run Code Online (Sandbox Code Playgroud)

然后,如果我想获得价值,我可以使用两种可能的方式:

    String value = map.get("key1");
Run Code Online (Sandbox Code Playgroud)

要么

    String value = map.get("key2");
Run Code Online (Sandbox Code Playgroud)


在MultiKeyMap中,您需要指定所有键来检索值:

    String value = map.get("key1", "key2");
Run Code Online (Sandbox Code Playgroud)


更新:
人们告诉我使用常规的Map类,但我不确定具有指向相同值的两个键的映射是否会在内存中生成两个重复值.所以任何人都可以确认一下

java key map

4
推荐指数
1
解决办法
1768
查看次数

如何创建奇数范围数随机函数?

我们知道经典的范围随机函数是这样的:

public static final int random(final int min, final int max) {
    Random rand = new Random();
    return min + rand.nextInt(max - min + 1);  // +1 for including the max
}
Run Code Online (Sandbox Code Playgroud)

我想创建算法函数,用于在 1..10 之间的范围内随机生成数字,但具有不均匀的可能性,例如:
1) 1,2,3 -> 3/6 (1/2)
2) 4,5,6,7 -> 1/6
3) 8,9,10 -> 2/6 (1/3)

以上表示函数有 1/2 的机会返回 1 到 3 之间的数字,1/6 机会返回 4 到 7 之间的数字,1/3 机会返回 8 到 10 之间的数字。

有人知道算法吗?

更新:
实际上 1..10 之间的范围只是作为一个例子。我想创建的函数适用于任何范围的数字,例如:1..10000,但规则仍然相同:3/6 代表最高范围(30% 部分),1/6 代表中间范围(下一个40% 的部分),底部范围的 2/6(最后 30% 的部分)。

java random algorithm

4
推荐指数
1
解决办法
1908
查看次数

如何将JFrame放入Java Swing中的现有JPanel?

我有一个像这样的开源java swing应用程序: 在此输入图像描述 http://i47.tinypic.com/dff4f7.jpg

你可以在截图中看到,有一个JPanel分为左右两个区域.左侧区域有许多文本链接.当我单击SLA Criteria链接时,它将弹出SLA Criteria窗口.弹出窗口是JFrame对象.

现在,我试图将弹出窗口放到JPanel的右侧区域,这意味着不再有弹出窗口,即当我单击SLA Criteria链接时,其内容将显示在右侧区域. JPanel的.JPanel右侧区域的现有内容将不再使用.这个概念与java api文档页面中的相同:http://docs.oracle.com/javase/6/docs/api.单击左框中的链接,您将获得右框显示的内容.

示例说明如下:

(注意:它是使用图像编辑器制作和编辑的,这不是工作应用程序的真实截图)

在此输入图像描述 http://i48.tinypic.com/5vrxaa.jpg

那么,我想知道有没有办法将JFrame放入JPanel?

我正在考虑使用JInternalFrame,这可能吗?或者还有另一种方式吗?

更新:
源代码:
http ://pastebin.com/tiqRbWP8(VTreePanel.java,这是左右区域分区的面板)
http://pastebin.com/330z3yuT (CPanel.java,这是VTreePanel的超类并且也是JPanel的子类)
http://pastebin.com/MkNsbtjh (AWindow.java,这是弹出窗口)
http://pastebin.com/2rsppQeE (CFrame.java,这是AWindow的超类,也是来自JFrame的子类)

java swing jpanel jframe

4
推荐指数
2
解决办法
6172
查看次数

如何将 XMLGregorianCalendar 与仅日期部分(日、月、年)进行比较?

我正在开发一个与 spring-struts Web 应用程序集成的 Web 服务,在 XSD 中有一个 XMLGregorianCalendar 类型属性,假设属性名称是trxDate

在 SOAPUI 测试应用程序中,如果我插入了 trxDate 的值:2013-02-21,那么我发送了soap xml请求数据,并使用以下方法在服务方法中打印了该值: System.out.println(trxDate) 方法,打印输出结果与输入相同:2013-02-21。

现在,我正在尝试创建一个函数来将trxDate与当前日期进行比较。我知道我们可以使用 trxDate.compare(currentDate) 方法进行比较。问题是我不知道如何创建使用当前日期设置的 XMLGregorianCalendar 对象,仅使用日期部分(日、月和年)进行比较。

我尝试使用以下代码:

    GregorianCalendar gc = new GregorianCalendar();
    gc.set(GregorianCalendar.HOUR_OF_DAY, 0);
    gc.set(GregorianCalendar.MINUTE, 0);
    gc.set(GregorianCalendar.SECOND, 0);
    gc.set(GregorianCalendar.MILLISECOND, 0);

    XMLGregorianCalendar xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
    System.out.println(xgc);
Run Code Online (Sandbox Code Playgroud)

结果是:
2013-02-20T00:00:00.000+07:00

但我期待:
2013-02-20

如果使用日期(xgc )与trxDate进行比较:

int result = trxDate.compare(xgc);
Run Code Online (Sandbox Code Playgroud)

结果是 2,这意味着:INDETERMINATE(来自 DatatypeConstants 类)。正确的结果应该是 -1、0 或 1。

那么我的代码有什么问题吗?

java xsd web-services jaxb gregorian-calendar

4
推荐指数
1
解决办法
2万
查看次数

看起来像java内部静态类,但显然它不是(我不明白,这怎么可能?)

来自:http: //developer.android.com/resources/tutorials/views/hello-gridview.html,在ImageAdapter类中:

imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
Run Code Online (Sandbox Code Playgroud)

查看新的GridView.LayoutParams部分.这似乎是的LayoutParams内部静态类的GridView类的,但根据Android的文档,GridView控件类的完整路径是android.widget.GridView,而的LayoutParams是android.widget.AbsListView.LayoutParams.所以LayoutParams不是GridView的内部静态类.

怎么可能呢?

参考文献:
来自android doc的Android doc LayoutParams类的GridView类

java android class

3
推荐指数
1
解决办法
162
查看次数

如何从表中删除树节点及其子记录(没有级联删除)?

我在postgreSQL v9.1中有这个表:

CREATE TABLE ad_treenodemm
(
  ad_tree_id numeric(10,0) NOT NULL,
  node_id numeric(10,0) NOT NULL,
  ad_client_id numeric(10,0) NOT NULL,
  ad_org_id numeric(10,0) NOT NULL,
  name character varying(60) NOT NULL,
  isactive character(1) NOT NULL DEFAULT 'Y'::bpchar,
  created timestamp without time zone NOT NULL DEFAULT now(),
  createdby numeric(10,0) NOT NULL,
  updated timestamp without time zone NOT NULL DEFAULT now(),
  updatedby numeric(10,0) NOT NULL,
  parent_id numeric(10,0),
  seqno numeric(10,0),
  CONSTRAINT ad_treenodemm_pkey PRIMARY KEY (ad_tree_id , node_id ),
  CONSTRAINT adtree_adtreenodemm FOREIGN KEY (ad_tree_id)
      REFERENCES adempiere.ad_tree (ad_tree_id) MATCH …
Run Code Online (Sandbox Code Playgroud)

java sql postgresql tree sql-delete

3
推荐指数
1
解决办法
1217
查看次数