小编Sha*_*ath的帖子

如何使用ListVIew中的MultiChoiceModeListener使用和不支持?

我想多选上下文菜单添加到listview与支持库22.1.1使用AppCompatActivityToolbar

没有支持库我可以使用 AbsListView.MultiChoiceModeListener

使用支持库,作为参数MultiChoiceModeListener接受的支持版本没有等效存在android.support.v7.view.ActionMode.

我该怎么做才能让它与支持库一起工作?

android android-appcompat android-listview action-menu android-contextmenu

7
推荐指数
1
解决办法
1056
查看次数

如何在Android视图之间添加GLSurfaceView?

我正在使用Android -Sandwich类型的特殊UI,GLSurfaceView上的一个小GalleryView(带有透明区域)在背景View(LinearLayout +一些小部件)之上.这就是我想要设置它的方式:

<User>
Run Code Online (Sandbox Code Playgroud)

TOP View
--- GalleryView
|
--- GLSurfaceView(带透明区域)
|
--- LinearLayout(带小部件)
BOTTOM View

在常规模式下,GLSurfaceView在透明区域上有黑色背景,所以我看不到底层,但是当我使用setZOrderOnTop(true)时; 我可以看到底层,但顶层(图库)也落后于Glsurface视图.如何在模式中完成所需的视图?

XML code dummy示例(使用AnalogClock而不是GalleryView):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#920000"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/LinearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right" >

        <AnalogClock
            android:id="@+id/analogClock2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <com.test.CustomGlView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/gl_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    <AnalogClock
        android:id="@+id/Gallery_dummyview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

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

android glsurfaceview android-layout

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

EditText调用onFocusChanged三次而不是一次

我必须ListView在每个项目上做一个包含的内容EditText.如果EditText获得焦点,我必须显示一个对话框 - 条件严格适用于EditText获得焦点而不是按下时,因为即使没有按下也可以选择它...

为了做到这一点,我使用焦点监听器,EditText但是onFocusChanged当用户按下时,只有一次调用三次调​​用EditText,这意味着对话框被调用两次...

这是调用的顺序:

  • 有焦点
  • 失去焦点
  • 有焦点

我没有任何其他特殊的处理ListViewEditText..所以它应该是从系统以某种方式,也许是因为我使用ListView上的EditText也是一个焦点View..

有没有人有任何想法为什么会发生这种情况,我怎么能"修复"这个?

先感谢您.

android listview focusable android-edittext

6
推荐指数
0
解决办法
606
查看次数

如何在Roboelectric中模拟ViewPager上的拖动事件?

我是Android和Robolectric的新手.我试图模拟(如主题所示)在viewpager上的拖动事件.

我曾经实现过这个代码,它在模拟器上运行.

问题主要是:我如何对其进行单元测试?

这是单元测试:

/** imports are skipped **/

@RunWith(RobolectricTestRunner.class)
@Config(manifest = "/src/main/AndroidManifest.xml")
public class TestImages {

private ImageActivity activity;

@InjectResource(R.drawable.ic_launcher)
private static Drawable image;

@Spy
private final PicturesModel picturesModel = spy(new PicturesModelImpl());

/**
 * Last touched view
 */
private View lastTouchView;

/**
 * Last touched X coordinate
 */
private float lastTouchX;
/**
 * Last touched Y coordinate
 */
private float lastTouchY;

@Before
public void setup() {
    MockitoAnnotations.initMocks(this);

    final Module roboGuiceModule = RoboGuice.newDefaultRoboModule(Robolectric.application);
    final Module pictureModule = Modules.override(roboGuiceModule).with(new PictureModule());
    final …
Run Code Online (Sandbox Code Playgroud)

android robolectric android-viewpager

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

如何将依赖包引用到像.aar文件这样的Android库中?

我有一个android-library插件,它使用几个包含.jar文件的android库,并直接从我的build.gradle文件中引用:

compile fileTree(dir: 'libs', include: '*.jar')
Run Code Online (Sandbox Code Playgroud)

然后我会发出一个gradlew assembleRelease命令来创建一个可以在Android应用程序中使用的.aar文件.到目前为止,这对我来说一直很好.

我现在需要在我的android-library中使用Google Play服务.正如官方Android文档(http://developer.android.com/google/play-services/setup.html#Setup)中所述,我需要将Google Play服务作为库项目包含在maven中导入:

compile 'com.google.android.gms:play-services:4.3.23'
Run Code Online (Sandbox Code Playgroud)

但是当我构建我的.aar文件时,Google Play服务似乎不包含在其中(我的.aar文件只有200kb,Google Play Services .jar库大于1mb).

我已经读过Google Play服务应该作为Android库模块引用,但我无法像没有编译错误那样导入它.有人可以帮我把Google Play服务打包到我的android-library中吗?

我的android-library build.gradle文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android-library'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.google.android.gms:play-services:4.3.23'
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.1'

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
    }
    release {
        runProguard false
    }
}
Run Code Online (Sandbox Code Playgroud)

我的android应用程序build.gradle文件:

buildscript {
    repositories { …
Run Code Online (Sandbox Code Playgroud)

android gradle android-library google-play-services android-studio

6
推荐指数
0
解决办法
3012
查看次数

使用滚动RecyclerView时如何在ViewPager中隐藏工具栏?

我在视图分页器中有一个工具栏(带有水平滑动导航的选项卡式工具栏),每个选项卡都有自己的带有recyler_view的片段.我现在想在我的recyler_view滚动时隐藏工具栏.在我的片段中,我添加了on scroll-listener,并希望在其activity类中调用一个方法来隐藏工具栏.工具栏在活动中创建.如何从我的片段中调用此方法?或者在我的片段本身中实现这种隐藏方法会更好.但是,我如何"联系"我的工具栏,这是在活动中而不是在片段中创建的.我找到了解决方案,但没有一个讨论片段中的recylcer_view和用于选项卡式导航的view-pager.如果你能帮助我会很棒......

android android-fragments android-viewpager android-toolbar android-recyclerview

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

单击右上角的Floating ActionButton可以单击RecyclerView项

我想在recyclerview上添加浮动操作按钮,但问题是当我点击浮动操作按钮Recyclerview项目时点击如何删除此问题

见下面的代码

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".screens.ShowSubjectsFrag"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/MainList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center">
    </android.support.v7.widget.RecyclerView>
    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@android:drawable/ic_input_add"
        app:layout_anchor="@id/MainList"
        android:layout_margin="@dimen/fab_margin"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android floating-action-button android-recyclerview

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

如何在应用结算中隐藏非活动产品?

我们有一个支持In App Billing v3的Android应用程序.在我们的测试中,其他一切工作正常,但我们发现通过查询库存也可以获得非活动产品.

这就是我们在应用商品库存中查询Google Play的方式:

ArrayList<String> moreSkus = new ArrayList<String>();
moreSkus.add("gas");
moreSkus.add("premium");
mHelper.queryInventoryAsync(true, moreSkus, mGotInventoryListener);

...

IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
    public void onQueryInventoryFinished(IabResult result, final Inventory inventory) {
        if(inventory.hasDetails("premium")) {
            System.out.println("Inactive product is also visible to app!");
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

在这两个产品中,"premium"处于非活动状态,但IabHelper.QueryInventoryFinishedListener中的print语句仍然执行!

有没有办法只获得有效产品?

java android in-app-purchase in-app-billing google-play

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

如何使用 WebView 在新窗口中启动活动?

我有一个 ViewPager,里面有几个片段,其中一个包含一个 webview。在该 WebView 中,我想在我用来显示图像的指定活动中打开图像 (jpeg/png) 的链接:

MyFragment.java

    webView.setWebViewClient(new WebViewClient() {

        public void startImageView(String url) {
            Intent imageIntent = new Intent(getActivity(), ImageActivity.class);
            imageIntent.putExtra(ImageActivity.IMAGE_URL, Uri.parse(url));
            startActivity(imageIntent);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url){
            if (url.toLowerCase().endsWith(".png") || url.toLowerCase().endsWith(".jpg") || url.toLowerCase().endsWith(".jpeg")) {
                startImageView(url);
            } else {
                view.loadUrl(url);
            }
            return false;
       }

    });
Run Code Online (Sandbox Code Playgroud)

ImageActivity.java

public class ImageActivity extends ActionBarActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_image_full_size);
...
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml

...
        <activity
            android:name="com.example.main.ImageActivity"
            android:label="Picture"
            android:screenOrientation="portrait"
        >
        </activity>
...
Run Code Online (Sandbox Code Playgroud)

当我单击网络视图内的图像链接时,图像活动确实会加载。但是,活动会加载到片段内,而不是在新窗口中打开(就像活动通常所做的那样)。当我从另一个活动(而不是如上所述的 …

android android-webview android-fragments android-viewpager android-activity

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

无法实例化以下类:android.support.design.widget.CoordinatorLayout

谁知道这是关于什么的?

这是我的依赖项:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:cardview-v7:22.0.0'
    compile 'com.android.support:gridlayout-v7:22.0.0'
    compile 'com.android.support:palette-v7:22.0.0'
    compile 'com.android.support:recyclerview-v7:22.0.0'
}
Run Code Online (Sandbox Code Playgroud)

我从Android支持库导入了所有内容并同步了Gradles.有谁知道为什么我在布局中出现渲染问题?

这是错误日志:


java.lang.NoClassDefFoundError: Could not initialize class android.support.design.widget.CoordinatorLayout
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:413)
    at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105)
    at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:177)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:214)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:142)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:413)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:497)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:485)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:485)
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:590)
    at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$6.run(AndroidDesignerEditorPanel.java:480)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
    at …
Run Code Online (Sandbox Code Playgroud)

android android-studio

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