小编Nel*_*rez的帖子

SAX解析器与XMLPull解析器

我理解SAX解析器的工作方式与XMLPull解析器之间的区别.事实上这里有一个很好的解释:

http://www.firstobject.com/xml-reader-sax-vs-xml-pull-parser.htm 这篇文章有点以.NET为中心,但概念适用.

虽然我同意作者的观点,即Pull解析器更容易使用,但我很困惑哪种类型的解析器在哪种情况下会更好.如果有人可以放弃任何光线并指出我更多的阅读,我会很感激.

谢谢.

xml android saxparser xmlpullparser

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

Android - 打开和关闭屏幕时,覆盖在全屏视频最后一帧上的视图无法正确重绘

我有一个以纵向模式播放的视频.在视频结束时,我需要显示一些视图.这到目前为止工作正常.

但是,我有一个问题,即在关闭屏幕后再返回活动,然后再打开屏幕时,视频最后一帧的视图不能正确重绘.

我观察到的是,当屏幕重新亮起并且我解锁时.我的视频和图像首先在全屏模式之外呈现(状态栏仍然显示),然后屏幕将进入全屏模式,将所有视图向上移动并导致伪像.

看起来这些视图在渲染后通过过渡到全屏来移出视图范围.

我真的很难过如何防止这种情况发生.

这是github上的沙箱项目,以避免使这个帖子充满代码.

该项目的基本设置如下:

片段活动在其布局上有视频视图和按钮视图.然后它将一个片段添加到contentView容器中.contentView在视频播放结束前1秒内淡出.

一切顺利,问题在于打开和关闭屏幕电源后返回应用程序.

此外,有时视频将完全退出,使视图位于黑色背景上.

提前感谢您提供的任何帮助.

正确呈现视频的视图

这是您关闭,重新打开和解锁屏幕时发生的瑕疵.请注意,我必须拍一张照片.在DDMS上,屏幕截图工具可以正确查看图像.

人工影像

android fullscreen android-video-player android-fragments android-view

19
推荐指数
1
解决办法
724
查看次数

Sonarqube的整体报道与jacoco报道报道不符

我有一个多模块Android项目,我发现jacoco报告的报道与Sonarqube报告的内容之间存在差异.该项目也是一个多风味的项目,产生了许多不同的变种.我正在使用此插件来帮助我生成所有任务.任务为每个变体生成单独的报告.

当我运行我的jacoco报告时,我看到了这个:

jacoco报道

当我运行声纳扫描仪时,我看到: 声纳覆盖报告

我的项目有一些排除,但即使没有它们,覆盖率%s也不匹配.

我觉得我可能没有提供与此问题中暗示相同的字节码:

以下是我的相关信息:Sonar 5.6版.

Gradle runner

plugins { id "org.sonarqube" version "2.0.1" }
Run Code Online (Sandbox Code Playgroud)

声纳配置:(在root build.gradle上)

sonarqube {
    properties {
        property "sonar.projectKey", "com.xxx.myApp"
        property "sonar.projectName", "Android My App"
        property "sonar.projectVersion", "3.0"
        property "sonar.java.binaries", "build/classes"
        property "sonar.coveragePlugin", "jacoco"
        property "sonar.jacoco.reportMissing.force.zero", "false"
    }
}
Run Code Online (Sandbox Code Playgroud)

声纳配置(在app/build.gradle上)

sonarqube {
    properties {
        property "sonar.sources", "src/main/java"
        property "sonar.tests", "src/test/java"
        property "sonar.java.tests", "src/test/java"
        property "sonar.junit.reportsPath", "build/test-results/myAppGoogleMobileDebug"
        property "sonar.java.binaries", "build/intermediates/classes/myAppGoogleMobile/debug"
        property "sonar.jacoco.reportPath", "build/jacoco/testMyAppGoogleMobileDebugUnitTest.exec"
        property "sonar.coverage.exclusions", coverageExclusions

    }
}
Run Code Online (Sandbox Code Playgroud)

Jacoco config on(app/build.gradle) …

android code-coverage jacoco sonarqube

16
推荐指数
1
解决办法
3211
查看次数

SoftKeyboard不会显示新显示的片段

我有一个FragmentActivity,最初显示一个片段,上面有几个按钮.单击其中一个按钮时,FragmentActivity将显示一个包含某些editText字段的新片段.当我显示带有editText字段的新片段时,我似乎无法显示软输入键盘.

在清单上使用windowSoftInput模式,因为它立即显示键盘.

 android:windowSoftInputMode="stateUnchanged"
Run Code Online (Sandbox Code Playgroud)

我试过用

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)

无济于事.以下是我在Activity中显示新片段的方法:

public void clickHandler(View view) {
        switch (view.getId()) {
        case R.id.login:
            loginFragment = new LoginFragment();
            FragmentTransaction transaction = getSupportFragmentManager()
                    .beginTransaction();

            transaction.replace(R.id.fragment_container, loginFragment);
            transaction.addToBackStack(null); 
            transaction.commit();
            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);  
            break;
Run Code Online (Sandbox Code Playgroud)

...

我也尝试从片段的onCreate中调用setSoftInputMode,但是效果不佳.认为这是一个时间问题,我用handler.postDelayed尝试了它,但也没有用.它看起来像这样:

onResume...    
Handler handler = new Handler();
            Runnable runnable = new Runnable() {

                @Override
                public void run() {
                    getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);                
                }
            };

            handler.postDelayed(runnable, 1000);
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.谢谢.

android android-softkeyboard android-fragments

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

无法向android项目添加兼容包

我在将兼容性软件包添加到我的android项目时遇到了麻烦.

不知道该怎么做.任何想法都表示赞赏.错误发生在底部,似乎与我的localhost的连接被拒绝.

这是我看到的控制台输出:

[2011-11-12 01:44:13 - SDK Manager] Fetching https://dl-ssl.google.com/android/repository/addons_list-1.xml
[2011-11-12 01:44:14 - SDK Manager] Validate XML
[2011-11-12 01:44:14 - SDK Manager] Parse XML
[2011-11-12 01:44:14 - SDK Manager] Fetched Add-ons List successfully
[2011-11-12 01:44:14 - SDK Manager] Fetching URL: https://dl-ssl.google.com/android/repository/repository-5.xml
[2011-11-12 01:44:15 - SDK Manager] Validate XML: https://dl-ssl.google.com/android/repository/repository-5.xml
[2011-11-12 01:44:15 - SDK Manager] Parse XML:    https://dl-ssl.google.com/android/repository/repository-5.xml
[2011-11-12 01:44:15 - SDK Manager]     Found SDK Platform Android 1.1, API 2, revision 1 (Obsolete)
[2011-11-12 01:44:15 - SDK Manager]     Found SDK Platform …
Run Code Online (Sandbox Code Playgroud)

compatibility android

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

在ExpandableListView上使用OnGroupClickListener不更新自定义视图

我有自定义groupViews,它们需要在展开和折叠时更改状态.如果展开相同的组视图,则会在两个状态之间切换.

我遇到的问题是expand方法似乎提升了一些缓存版本的视图,因为在调用expandGroup后我的更新不可见.

如果我的侦听器返回true(处理整个事件本身)而不调用expandGroup,则会发生更新.所以expandGroup发生了一些事情,它只允许绘制缓存视图.我尝试过无效()几乎所有事情.我尝试在列表视图上触发数据更新事件.我也尝试了所有这些其他的东西:

expandableList.setGroupIndicator(null);
        expandableList.setAlwaysDrawnWithCacheEnabled(false);
        expandableList.setWillNotCacheDrawing(true);
        expandableList.setItemsCanFocus(false);
Run Code Online (Sandbox Code Playgroud)

任何这些都没有运气:(

这是我的onClick代码:

expandableList.setOnGroupClickListener(new OnGroupClickListener() {

            public boolean onGroupClick(ExpandableListView parent, View v,
                    int groupPosition, long id) {
                MusicTrackRow mt = (MusicTrackRow) v;

                if (mt.isPlaying == true) {
                    mt.setPaused();
                } else {
                    mt.setPlaying();
                }
                mt.invalidate();
                parent.invalidate();
                trackAdapter.notifyDataSetInvalidated();
//need to call expandGroup if the listener returns true.. if returning false expandGroup is //returned automatically
                                expandableList.expandGroup(groupPosition); //no view refresh
                    return true;
Run Code Online (Sandbox Code Playgroud)

android expandablelistview

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