小编jen*_*ymo的帖子

Android:数据绑定表达式与枚举比较

是否可以使用枚举创建数据绑定表达式并控制视图元素的可见性?我想要实现的目标如下

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:visibility="@{user.editType == EditType.EDIT_PROFIL ? View.VISIBLE : View.GONE}">
Run Code Online (Sandbox Code Playgroud)

EditType类非常简单

public enum EditType {
  NONE,
  EDIT_PROFIL,
  EDIT_ADDRESSES; }
Run Code Online (Sandbox Code Playgroud)

如果我可以在XML中使用此枚举来控制我的可见性,那将是非常棒的LinearLayout.

有人知道如何实现这个目标吗?

data-binding enums android

17
推荐指数
1
解决办法
5600
查看次数

Android:垂直viewpager中的RecyclerView

我想在垂直viewpager中实现recyclerview.我目前的布局如下所示

VerticalViewpager
- Fragment1
    - ImageView
- Fragment2 
    - RecyclerView
Run Code Online (Sandbox Code Playgroud)

如果我从Fragment1滑动到Fragment2一切正常.我可以在recyclerview中上下滚动.如果我尝试滑动/滚动回Fragment1,则会出现此问题.

如果用户已滚动到recyclerview的顶部,我想将下一个"Up"-Scroll事件转发到垂直viewpager.我试过重写这个onInterceptTouchEvent方法,但遗憾的是仍然没有成功.有什么想法吗?谢谢你的帮助 :)

android scroll vertical-scrolling android-viewpager android-recyclerview

10
推荐指数
1
解决办法
3009
查看次数

共享元素转换(前景/背景)问题

我想知道是否可以更改共享元素转换的z顺序?看:

我有一个图像布局,填满整个屏幕.图像前面是一个文本框,显示图像的标题.如果我点击文本框,则会开始转换到详细信息活动.因此,我实现了一个共享元素转换,其中全屏图像在详细视图中设置为较小版本的自身.下图说明了这种行为.

在此输入图像描述

我现在的问题是,在两个活动中都是文本框,它们位于共享元素图像之上.如果我从概述到详细活动,我会在共享元素转换完成后看到带有数字的圆圈文本框.我想将带有数字的文本框放在共享元素转换之上,这样我也可以在这个视图元素上做一个动画.

关于如何解决这个问题的任何想法?

animation android transition z-order shared-element-transition

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

始终为索引0和1调用Viewpager Adapter getItem

我只是想知道它是否正常行为viewpager及其适配器总是调用getItem()索引0和1 的方法,即使我立即设置当前位置.

这是我的代码:

mNewsPagerAdapter = new NewsDetailPagerAdapter(getChildFragmentManager());
mNewsPagerAdapter.updateNewsList(news);

mViewPager = (ViewPager) mView.findViewById(R.id.horizontal_view_pager);
mViewPager.setPageMargin(2);
mViewPager.setPageMarginDrawable(R.color.black);

mViewPager.setAdapter(mNewsPagerAdapter);
mViewPager.setCurrentItem(mCurrentPositionPager, false);
Run Code Online (Sandbox Code Playgroud)

如果我从概览活动切换到我的详细活动viewpager,则适配器始终调用getItem()位置0和1 的方法,然后调用getItem()位置mOriginalPosition及其邻居的方法.我想知道这是否是正确的行为,或者我错过了以正确的方式实现它的东西.谢谢你的帮助 :)

编辑:添加了我的适配器代码

public class NewsDetailPagerAdapter extends FragmentStatePagerAdapter {

private SparseArray<Fragment> mPageReferenceMap = new SparseArray<Fragment>();

private ArrayList<News> mNewsList;

public NewsDetailPagerAdapter(FragmentManager fm) {
    super(fm);
}

/**
 * Setzt die neuen News.
 **/
public void updateNewsList(ArrayList<News> list) {
    mNewsList = list;
}

@Override
public Fragment getItem(int position) {
    Log.d("debug", "getItem position:" + …
Run Code Online (Sandbox Code Playgroud)

android position adapter android-viewpager

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

Android:使用ImageView工具栏背景的CollapsingToolbarLayout

我想实现CollapsingToolbarLayout这样的:

在此输入图像描述

这里的挑战是我需要一个Toolbar以gif为背景的自定义,因此我需要一个ImageView背景作为背景Toolbar.您可以在以下xml中看到我的实现:

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:background="@color/colorAccent"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/htab_collapse_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        app:contentScrim="@color/colorAccent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

        <!-- Container which should be scrolled parallax and contains the image gallery -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:fitsSystemWindows="true"
            app:layout_collapseMode="parallax">

            <RelativeLayout
                android:id="@+id/image_layer"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <android.support.v4.view.ViewPager
                    android:id="@+id/image_gallery"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/colorAccent"
                    android:layout_marginTop="?attr/actionBarSize"/>

                <LinearLayout
                    android:id="@+id/image_indicators"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:padding="@dimen/defaultPadding"
                    android:gravity="center"
                    android:layout_alignParentBottom="true"/>
            </RelativeLayout>
        </LinearLayout>

        <!-- Container which contains the background for the toolbar and the toolbar itself  -->
        <RelativeLayout …
Run Code Online (Sandbox Code Playgroud)

android toolbar android-collapsingtoolbarlayout

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

Android In-App-Billing退款/取消需要很长时间

)

我正在尝试在我的应用中实施应用内结算功能.在Google Play开发者控制台中,我声明了一个托管项目.买这个项目真的很好.但现在,当我在谷歌钱包商家中心退款或取消购买时,我的应用程序需要很长时间(更多天)来识别该商品不再拥有.

我已经阅读了很多关于这个问题的其他文章,并且认为一个合乎逻辑的解释是购买被保存在Google Play商店的缓存中.虽然我知道这个问题以前经常问过,但我再次问到这里:

当购买不再拥有时,是否可以清除缓存或有人知道如何告诉我的应用程序?

我很感谢任何提示,这有助于我解决这个问题:D

另外,我问我的代码,如果购买了商品.我正在使用应用内结算v3.

public boolean hasUserBoughtItem() {

    try {
        Bundle ownedItems = mService.getPurchases(mUsedAPI, mContext.getPackageName(),
                mPurchaseType, null);

        int response = ownedItems.getInt("RESPONSE_CODE");
        if(response == 0) {
            ArrayList<String> ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");

            if(!ownedSkus.isEmpty()) {
                for(String sku : ownedSkus) {

                    if(sku.equals(Constants.ITEM_ID_ALL_RECIPES)) {
                        return true;
                    }
                }
            } 

            return false;
        }
    } catch(Exception e) {
        e.printStackTrace();
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

android in-app-purchase in-app-billing

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

Mockk:验证协程内调用的方法

我有一个简单的对象,它提供一个挂起函数来模拟延迟的网络请求,然后从该对象调用另一个方法。

class CoroutinesObject {

suspend fun doApiCall() {
    delay(1000)
    println("Hello from API")
    val apiResult = "result #1"

    callMe(apiResult)
}

fun callMe(result: String) {
    println("[${Thread.currentThread().name}] call me with result: $result")
}
Run Code Online (Sandbox Code Playgroud)

}

我想编写一个简单的测试来验证该方法是否callMe已被调用。

class CoroutinesTest {

@Test
fun doApiCall_callsCallMe() {
    val obj = CoroutinesObject()
    runBlocking {
        obj.doApiCall()
    }

    coVerify { obj.callMe("result #1") }
}
Run Code Online (Sandbox Code Playgroud)

}

不幸的是,测试失败并出现以下异常,我不确定为什么会发生这种情况。

io.mockk.MockKException: Missing calls inside verify { ... } block.
Run Code Online (Sandbox Code Playgroud)

有人知道问题是什么以及如何编写能够验证被调用方法的测试吗?

testing coroutine kotlin mockk

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

重定向后不包括jquery(primefaces)

我是primefaces的新手,并试图用jsf实现一个简单的web应用程序.在这个应用程序中,我有一个login.xhtml,用户可以输入名称和密码.如果登录成功,我的LoginBean类会将他重定向到basicSites文件夹中名为index.xhtml的另一个页面.在login.xhtml上一切正常,index.xhtml发生错误.重定向到此站点后,我只看到一个白色站点,浏览器控制台告诉我有一个引用错误,因为没有定义jQuery.我通过许多其他有类似问题的文章进行了研究,但我的问题仍然没有解决.

以下是一些代码片段,以便更好地理解.

login.xhtml

<h:head>
    <title>Zugangsverwaltung | Login</title>
    <link type="text/css" rel="stylesheet" href="#{request.contextPath}/default.css" />
    <link type="text/css" rel="stylesheet" href="#{request.contextPath}/syntax.css" />
    <script type="text/javascript" href="#{request.contextPath}/scripts.js"/>
</h:head>

<h:body>
    <script type="text/javascript"> 
        jQuery(document).ready(function () {
            jQuery('#logoutLink').fadeOut();
        });
        function handleLoginRequest(xhr, status, args) { 
            if(args.validationFailed || !args.loggedIn) {  
                jQuery('#dialog').effect("shake", { times:3 }, 100);  
            } else {  
                dlg.hide();  
                jQuery('#loginLink').fadeOut(0); 
                jQuery('#logoutLink').fadeIn();
            }  

        } </script>
Run Code Online (Sandbox Code Playgroud)

LoginBean.java

public void login(ActionEvent actionEvent) {
    RequestContext context = RequestContext.getCurrentInstance();
    FacesMessage msg = null;
    boolean loggedIn = false;

    FacesContext ctx = FacesContext.getCurrentInstance();
    HttpServletRequest request = (HttpServletRequest) ctx.getExternalContext().getRequest();

    try …
Run Code Online (Sandbox Code Playgroud)

jquery jsf redirect defined primefaces

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

Android:是否可以从共享意图打开浏览器?

我想知道是否有可能从共享意图中打开浏览器。让我举一个例子来澄清:我有一个包含新闻的应用程序。每个新闻都有一个 url,以便用户可以通过 Whatsapp、蓝牙、环聊或其他方式与已知的 Android 共享意图共享此链接。现在我想知道用户是否也可以出于此共享意图在浏览器中打开此链接。那么:我是否能够说出他的意图,即他还应该显示在浏览器中打开新闻网址的机会?

我当前的分享意图如下所示:

Intent intent = new Intent(Intent.ACTION_SEND);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        intent.setType("text/plain");
        String shareString = news.getLink();
        intent.putExtra(Intent.EXTRA_TEXT, shareString);
        context.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

browser url android share

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

Android Studio:正则表达式无法正常工作

我将项目从Eclipse迁移到Android Studio,一切正常。在这个项目中,我有一个Regex,它应该在从API获取的json对象中找到所有图像url。

这是我有的正则表达式:

Pattern pattern = Pattern.compile("https?:\\/\\/[^\"]*?\\.(png|jpe?g|img)");

            Matcher matcher = pattern.matcher(obj.toString());
            while(matcher.find()) {
                ImageBackgroundFetcher.getInstance(mActivity).addImageToLoadingQueue(matcher.group());
            }
Run Code Online (Sandbox Code Playgroud)

obj是我在图像网址中拥有的JSONObject。如下所示,我想提取图像的网址(粗体部分){“ image”:“ http:\ / \ / www.test.de \ / media \ / 2015 \ / 01 \ / 16 \ /bildtitel.jpg “}

将项目从Eclipse迁移到Android Studio后,此Regex不再起作用。matcher.find()方法未返回true,Android Studio在正则表达式“ \\ / \\ /”处的代码中向我发出警告,其中显示“冗余字符转义”

我已经用谷歌搜索,但是没有找到解决方案。任何解决问题的想法都会很棒,在此先感谢;)

regex eclipse android

0
推荐指数
1
解决办法
4528
查看次数