小编Otu*_*uyh的帖子

如何使用moq模拟ConfigurationManager.AppSettings

我陷入了这个代码,我不知道如何模拟:

ConfigurationManager.AppSettings["User"];
Run Code Online (Sandbox Code Playgroud)

我必须模拟ConfigurationManager,但我没有线索,我正在使用Moq.

有人可以给我一个提示吗?谢谢!

c# unit-testing moq

115
推荐指数
5
解决办法
6万
查看次数

检查标记是否在圆半径内

我想知道给定的标记是否在圆半径内.

在javascript中,我可以做类似的事情:

google.maps.geometry.spherical.computeDistanceBetween(latLngCircleCenter, latLngPoint);
Run Code Online (Sandbox Code Playgroud)

但是在android中,使用maps-v2,我被困住了.

在此输入图像描述

android google-maps android-maps-v2

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

Android Maps v2:您的设备不支持某些应用所依赖的Google Play服务.

我有一个需要Google Play服务的应用程序,因为我使用的是Android Maps v2.

我正在运行一些测试,一个测试需要恢复出厂设置,并尝试运行该应用程序.

我第一次这样做,没有连接wifi或任何互联网来源,地图上显示的消息是:

您的设备不支持某些应用程序所依赖的Google Play服务.

当我点击这个"确定"按钮时,我的应用程序崩溃了.日志:

错误日志

当我连接到互联网时,此消息更改,显示的按钮是"更新",然后我只需单击,所有工作按预期方式.

我可以在Ok Button上处理这个事件吗?Ny提示?

谢谢!

android google-maps android-maps-v2

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

Android VideoView按顺序启动大量视频

我正在测试这个大约三天不间断.

这是简单的代码:

private VideoView videoView;
Run Code Online (Sandbox Code Playgroud)

-

videoView = (VideoView) findViewById(R.id.videoView);

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mediaPlayer) {
            getNewVideo();
        }
    }
});

getNewVideo();
Run Code Online (Sandbox Code Playgroud)

-

private void getNewVideo(){
    File file = //Any File. I have a list of files and they are executed in order
    videoView.stopPlayback();
    videoView.setVideoPath(file.getPath());
    videoView.start();
}
Run Code Online (Sandbox Code Playgroud)

-

<VideoView
    android:id="@+id/videoView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" />
Run Code Online (Sandbox Code Playgroud)

我需要24/7执行此代码.

问题是,与持续时间无关(在开始运行或运行20分钟后),有时候,视频就会冻结.没有日志,没有例外,我唯一知道的是在冻结之前运行的最后一件事就是onPrepared().

日志与所有调用视频的尝试相同,唯一的区别是最后一次尝试(冻结的那个),只是在准备好执行后停止.

任何提示表示赞赏.

我使用的内部版本号是RKM MK902_ANDROID5.1.1-20151016.1805

使用RKM MK902II Android PC设备,在电视屏幕42'中运行

android android-videoview

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

如何在具有NestedScrollView的片段中禁用AppBarLayout中的"expand"?

我有两个问题:

1)当我的片段中没有NestedScrollView时,我能够阻止"扩展"功能,但是当我这样做时,它会不断扩展,即使使用:

appBarLayout.setExpanded(false);
appBarLayout.setActivated(false);
Run Code Online (Sandbox Code Playgroud)

当片段中有NestedScrollView时,有什么方法可以阻止工具栏的扩展?

2)即使我没有NestedScrollView,当我在工具栏中触摸我的手指时,我仍然能够展开它,并向下和向上滚动."扩张和崩溃"仍然有效.

当我触摸手指并向下和向上滚动时,如何禁用折叠操作并展开工具栏?

谢谢.

Edit1(更多信息):

这是我的片段的代码,在FrameLayout内部.

<android.support.v4.widget.NestedScrollView>

    <LinearLayout>

        <TextView />

        <android.support.v7.widget.RecyclerView />

    </LinearLayout>

</android.support.v4.widget.NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

这是我的活动结构:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <android.support.design.widget.CoordinatorLayout>

        <android.support.design.widget.AppBarLayout>

            <android.support.design.widget.CollapsingToolbarLayout>

                <android.support.v7.widget.Toolbar />

            </android.support.design.widget.CollapsingToolbarLayout>

        </android.support.design.widget.AppBarLayout>

        <FrameLayout
            android:id="@+id/frame_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    </android.support.design.widget.CoordinatorLayout>

    ...

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

编辑2:现在唯一的问题是: 当我在片段中有NestedScrollView时,有什么方法可以阻止工具栏的扩展?

android android-layout android-support-library android-design-library android-coordinatorlayout

4
推荐指数
2
解决办法
4358
查看次数

配置更改后的notifyDataSetChanged

我在更改设备配置(更改语言,方向等)后进行了一些测试,我注意到在此之后,方法"notifyDataSetChanged()"无法正常工作.

动作示例:

我每次执行删除,保存等操作时都会调用updateList().用户单击删除按钮,会显示DialogFragment,"您确定要删除吗?",当我更改方向时,或者语言或设备的任何配置,然后在对话框上单击"是",数据将被删除,但列表不会更新.我需要退出活动,然后回去查看更改.

BookAdapter:

public void updateList(ArrayList<Book> books) {
     bookList = books;
     notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

在配置更改后,我该怎么做才能使它工作?

编辑:

BookAdapter构造函数:

public BookAdapter(Context c, ArrayList<Book> books) {
    context = c;
    bookList = books
    bookDAO = BookDAO.getInstance(context);
}
Run Code Online (Sandbox Code Playgroud)

BookFragment:

public class BookFragment extends Fragment {

    private BookDAO bookDAO;

    private BookAdapter bookAdapter;

    private ListView listBook;

    private View view;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        bookDAO = bookDAO.getInstance(getActivity());

        view = inflater.inflate(R.layout.book_tab, container, false);

        ArrayList<Book> listBook = null;

        try {
            llistBook = bookDAO.getAll();
        } …
Run Code Online (Sandbox Code Playgroud)

android android-adapter

3
推荐指数
1
解决办法
2542
查看次数

没有严格模式的JSON.parse

我正在阅读关于javascript中严格模式的John Resig博客,但我有一个问题.

严格模式的一个特性是使用JSON.parse和JSON.stringify,但我可以使用WITHOUT"use strict".

如果你写他在博客上使用的相同例子:

var str = JSON.stringify({ name: "John" });
// Prints {"name":"John"}
alert( str );
Run Code Online (Sandbox Code Playgroud)

你可以看到这个工作.

为什么允许这样做?我错过了什么吗?

谢谢!

javascript use-strict ecmascript-5

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

从64位数转换为32位数

尝试了很多,只是失败..

$x = 76561198005785475;
Run Code Online (Sandbox Code Playgroud)

我想要这个号码,转到这个:

$y = 45519747;
Run Code Online (Sandbox Code Playgroud)

这是它的32位形式.


试着解释更多细节:

http://www.tonymarston.net/php-mysql/converter.php

1)将值76561198005785475放在"十进制(输入)"字段中.2)在"二进制(Base 2)"字段中按"DEC to BIN".3)从右边开始计数32并复制它.4)在"Binary(Base 2)"字段上粘贴32个字符的二进制数.5)按"二进制(Base 2)"字段中的"Bin to Dec"按钮.

好的,现在您可以看到"45519747"号码.

php 32bit-64bit

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

如何在小部件中添加加载

当我在家里添加小部件时,我有几个过程,如何在尚未准备好时添加“加载图像”?

我看到 Youtube 小部件有这个。

谢谢!

android android-widget

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

如何使用Moq测试void方法?

我是TDD的新人,我还有很多问题,其中一个问题是如何测试一个无效方法!

我有这个通过refference传递的params,我不知道如何测试:(这只是一个测试,而不是我真正的方法)

public void ReplaceCenter(ref string cod, ref string name)
    {
        User user = userDAO.GetSomething();

        if (user.Cod != null)
        {
            cod = user.Cod;
        }

        if (user.Name != null)
        {
            name = user.Name;
        }
    }            
Run Code Online (Sandbox Code Playgroud)

someoen可以帮忙吗?谢谢!

c# unit-testing moq

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

我怎样才能加密c#中的web.config变量

我必须在我的web.config中输入密码,我需要加密它并在我的代码中使用,是否有一些提示如何做到这一点?

我的web.config代码:

<appSettings>
    <add key="Password" value="test123"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

我是如何得到它的:

string Password = ConfigurationManager.AppSettings["Password"];
Run Code Online (Sandbox Code Playgroud)

谢谢!

.net c# security web-config

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

如何避免ref参数?

我有一个方法有2个参数:

public void ReplaceSomething(ref int code, ref string name)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想避免这种情况,因为它不是一个好的设计(并且很难缩放).我有什么选择?

我虽然使用匿名对象,但这似乎也不是一个好主意.

Object something = new { code = 1, name = "test" };

ReplaceSomething(something);
Run Code Online (Sandbox Code Playgroud)

c# anonymous pass-by-reference

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