0

我经常看 API 说 android api,你可以在参数之间添加一个管道来组合它们。说 *CENTER_VERTICAL|CENTER_HORIZONTAL*。这是怎么做的?谁能给我看一个例子,我可以将多个参数传递给如上链接的函数?我如何阅读它们?

亲切的问候

4

2 回答 2

4

竖线实际上是按位或,因此该方法仅在参数是“标志”或位字段时才有效。

例如

private static final int FLAG1 = 0x01;
private static final int FLAG2 = 0x02;

callFunc(FLAG1|FLAG2); // (passes 0x03)

如果 args 只是“任何旧的 int”,它可能不会像你想的那样:

例如

callFunc(0x03|0x01); // passes 0x03 - so the 0x01 does nothing.
于 2012-09-18T08:07:52.343 回答
0

这就像我想要的。找到了答案,所以我想我会回答我自己的问题。

   public static final int a=1
   public static final int b=2;
   public static final int c=4;
   public static final int d=8;


    myfunction(a|b);

    myfunction(int x)
    {
       if((a&x)==a)
       {
          //Do whatever a stands for, and so on.
       }

      if((b&x)==b)
      { 
      }

      if((c&X)==c)
      {
      }

      if(d&x))==d)
      {
      }

    }




}
于 2012-09-18T19:09:26.243 回答