小编zna*_*nat的帖子

如何在ViewPager中获得对片段的引用?

我找到的唯一记录方式是:

MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.id.fragment);
Run Code Online (Sandbox Code Playgroud)

但是由于Fragment是在ViewPager中实例化的,所以我没有id.

    List<Fragment> fragments = new Vector<Fragment>();
    fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
    fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
    fragments.add(Fragment.instantiate(this, Fragment3.class.getName()));
Run Code Online (Sandbox Code Playgroud)

谢谢

android android-fragments

6
推荐指数
1
解决办法
2844
查看次数

如何访问Android设备上的可移动存储?

我正在寻找一种方法来检测和访问各种Android设备(三星,摩托罗拉,LG,索尼,HTC)上的可移动SD卡.

我还需要与2.2兼容,因此Environment.isExternalStorageRemovable()对我来说无法使用.

摩托罗拉有自己的库,对于三星,我可以检测到它的存在 /external_sd/

我对其余的人一无所知.例如,我/_ExternalSD/在某些LG上看到过,但即使删除了SD,目录仍然存在.

奖金问题:是否会ACTION_MEDIA_MOUNTED为其中任何人播放意图

任何暗示都会非常有帮助.

android android-sdcard

6
推荐指数
1
解决办法
4892
查看次数

传递泛型Class <T>作为参数

我需要传递一个Class作为参数,但我只有通用类型T.我如何推断泛型类并将其传递给fromJson()

public class Deserializer<T> implements JsonDeserializer<JsonList<T>> {
    public T someMethod(){
        ...
        T tag = gson.fromJson(obj, ???); // takes a class e.g. something.class
        ...
    }                       
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java generics type-erasure

6
推荐指数
2
解决办法
864
查看次数

为什么我的AlertDialog在onResume()或onActivityResult()中创建时不显示?

我的代码在下面,并且当onCreate() 我从没有错误或stracktrace 调用时工作得非常好.它只是没有显示.

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
   .setCancelable(false)
   .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            finish();
       }
   })
   .setNegativeButton("No", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
       }
   });
AlertDialog alert = builder.create();   
alert.show();
Run Code Online (Sandbox Code Playgroud)

android

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

JUnit错误 - IllegalArgumentException:Test类只能有一个构造函数

单元测试对我来说是新的,我有这个错误,我不明白.我有2个TestCases子类,它们在独立运行时工作正常,但在我的测试套件中没有.

在测试套件(下面的AllTest类)中,前3个工作正常,但AvailableResouresTest和ModelTest生成错误.

我怀疑这与我必须在AllTest中导入这两个类(并且只有它们)这一事实有关,而它们都位于同一个包中.

我使用Eclipse向导创建了这两个测试用例.但是,我在代码中找不到明显的差异,因此可能会有些新鲜的眼睛可以提供帮助.非常感谢你

测试套件代码:

package com.tms.client.tests;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import com.tms.client.model.AvailableResources;  // I have to import those 2 classes only
import com.tms.client.model.Model;               // but all my tests are in the same folder

@RunWith(Suite.class)
@SuiteClasses(value = { TaskTest.class, 
                    ResourceTest.class,
                    DateForTMSTest.class,
                    AvailableResources.class,
                    Model.class})
public class AllTests{
public static final String SCHEME_FILENAME= "config/project_schema.inc2.xsd";
public static final String RESOURCE_FILENAME = "config/resourceList.inc2.txt";
public static final String PROJECT_FILENAME = "input/project.inc2.e.xml";
public static final String PROJECT_FILENAME_SAVE_LOCATION =     "input/project.save.tmp.xml";
}
Run Code Online (Sandbox Code Playgroud)

非工作测试:

package com.tms.client.tests;
import …
Run Code Online (Sandbox Code Playgroud)

java junit

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

如何将GridView的选择模式设置为多个?

我的代码中有这一行:

myGridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE);
Run Code Online (Sandbox Code Playgroud)

它在ICS中工作得非常好,但在2.2和2.3.x时崩溃,并出现以下错误:

java.lang.NoSuchMethodError: android.widget.GridView.setChoiceMode
Run Code Online (Sandbox Code Playgroud)

但是看一下这些文档告诉我,API 1支持该方法,尽管它继承自AbsListView.我还发现这个问题没有明显的解决方案报告问题

有没有人现在解决这个问题,或者想知道如何为所有版本将选择模式设置为多个?

谢谢

android gridview

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

如何在CSS中获得对id ="xxx.yyy"的引用?

在HTML代码中有一个div,如:

<div id="xxx.yyy">...</div>
Run Code Online (Sandbox Code Playgroud)

我想在css文件中指定样式.我怎样才能获得对这个div的引用?以下似乎不起作用:

#xxx.yyy {

}
Run Code Online (Sandbox Code Playgroud)

谢谢

css

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

RxAndroid - java.lang.IllegalStateException:已经注册了另一个策略

我正在编写一个单元测试,需要模拟一个Observable(来自改造)

测试组件中的代码如下:

getApiRequestObservable()
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribe(...)
Run Code Online (Sandbox Code Playgroud)

在单元测试中(针对JVM因此AndroidSchedulers不可用)我需要使它全部同步,所以我的测试将如下所示:

@Test
public void testSomething() {
    doReturn(mockedResponse).when(presenter).getApiRequestObservable();
    presenter.callApi();
    verify(object,times(1)).someMethod();
}
Run Code Online (Sandbox Code Playgroud)

为此,我应该在setUp()方法中注册钩子:

@Before
    public void setUp() throws Exception {

        // AndroidSchedulers.mainThread() is not available here so we fake it with this hook
        RxAndroidPlugins.getInstance().registerSchedulersHook(new RxAndroidSchedulersHook() {
            @Override
            public Scheduler getMainThreadScheduler() {
                return Schedulers.immediate();
            }
        });

       // We want synchronous operations
        RxJavaPlugins.getInstance().registerSchedulersHook(new RxJavaSchedulersHook(){
            @Override
            public Scheduler getIOScheduler() {
                return Schedulers.immediate();
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

但这引发了上述异常,因为我显然不允许注册两个钩子.那有什么办法吗?

android rx-java rx-android

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

如何使用 Google Cloud Endpoints 设置自定义用户身份验证

我试图了解如何使用具有自定义身份验证的 Cloud Endpoints。从文档中我了解到它从以下开始securityDefinitions

securityDefinitions:
    your_custom_auth_id:
      authorizationUrl: ""
      flow: "implicit"
      type: "oauth2"
      # The value below should be unique
      x-google-issuer: "issuer of the token"
      x-google-jwks_uri: "url to the public key"
      # Optional. Replace YOUR-CLIENT-ID with your client ID
      x-google-audiences: "YOUR-CLIENT-ID"
Run Code Online (Sandbox Code Playgroud)

这就是我对流程的理解:

  1. API 使用者发送标头中带有 JWT 令牌的请求
  2. ESP 使用以下方法验证此令牌authorizationUrl
  3. 请求被转发或 ESP 返回错误。

我的问题:

  • 上面的流程正确吗?
  • 应该如何authorizationUrl实施。请求看起来如何,成功或失败时应返回什么响应

  • 这个值呢?x-google-issuer:“令牌的发行者” x-google-jwks_uri:“公钥的网址” x-google-audiences:“您的客户端ID”

google-cloud-endpoints

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

如何正确授权对 Google Cloud Storage API 的请求?

我正在尝试使用 Google Cloud Storage JSON API 通过 http 调用从存储桶中检索文件。

我在与存储桶位于同一项目中的 GCE 中的 Container 中卷曲,并且服务帐户具有对存储桶的读取访问权限

这是请求的模式:

https://storage.googleapis.com/{bucket}/{object}
Run Code Online (Sandbox Code Playgroud)

根据 API 控制台,我不需要任何特别的东西,因为服务帐户提供了应用程序默认凭据。但是,我一直有这个:

Anonymous caller does not have storage.objects.get
Run Code Online (Sandbox Code Playgroud)

我还尝试为项目创建一个 API 密钥并将其附加到 url ( https://storage.googleapis.com/{bucket}/{object}?key={key}) 但我仍然遇到相同的 401 错误。

如何授权查询此 API 的请求?

google-cloud-storage google-cloud-iam

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