小编Web*_*cer的帖子

SQLite EF6以编程方式在运行时设置连接字符串

我尝试将表单EF 3.5迁移到6(使用SQLite作为数据库).我们无法在app配置文件中设置连接字符串(这对ef6没有问题).我们必须在运行时以编程方式设置连接字符串(在用户选择SQLite文件之后).

这是我们的app.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="testContext" connectionString="data source=Data\testdb.sqlite;Foreign Keys=True"
      providerName="System.Data.SQLite" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite" />
      <remove invariant="System.Data.SQLite.EF6" />
      <add name="System.Data.SQLite" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
    </DbProviderFactories> …
Run Code Online (Sandbox Code Playgroud)

.net sqlite connection-string runtime entity-framework-6

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

SQLite返回错误的2013年周数?

我在SQLite的报告中有一个简单的SQL来计算周数

SELECT STRFTIME('%W', 'date_column')
Run Code Online (Sandbox Code Playgroud)

对于2009-2012非常正确.在2013年,我总是错误的周数.

例如

SELECT STRFTIME('%W', '2012-02-28')
Run Code Online (Sandbox Code Playgroud)

返回'09',这是正确的.

SELECT STRFTIME('%W', '2013-02-28')
Run Code Online (Sandbox Code Playgroud)

返回'08',这是错误的.我们有第9周.

SQLite日期时间函数中有什么我不明白的东西吗?或者它是SQLite的错误?

sqlite strftime week-number

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

LoaderManager的restartLoader方法中的NullPointerException

我的片段中有以下自己的接口实现:

@Override
    public void onReportChanged(Fragment sender, long id, int position) {
        // Views ein und ausblenden
        _List.setVisibility(View.GONE);
        _OnLoading.setVisibility(View.VISIBLE);
        _NoDataView.setVisibility(View.GONE);
        _ReportId = id;
        getLoaderManager().restartLoader(_LM_REPORTS, null, this);
    };
Run Code Online (Sandbox Code Playgroud)

FragmentActivity向此片段报告,另一个片段(选择列表)已选择一个项目.之后,ListFragment应加载具有报告ID(_ReportId)的新数据.

但是NullPoinerException在进入onCreateLoader-Method之前我会使用这段代码.这是LogCat:

05-28 14:24:37.905: E/AndroidRuntime(1775): FATAL EXCEPTION: main
05-28 14:24:37.905: E/AndroidRuntime(1775): java.lang.NullPointerException
05-28 14:24:37.905: E/AndroidRuntime(1775):     at android.support.v4.app.LoaderManagerImpl.restartLoader(LoaderManager.java:637)
05-28 14:24:37.905: E/AndroidRuntime(1775):     at de.webducer.android.worktime.beta.ui.fragment.ReportListFragment.onReportChanged(ReportListFra gment.java:142)
05-28 14:24:37.905: E/AndroidRuntime(1775):     at de.webducer.android.worktime.beta.ui.ReportListActivity.onReportSelected(ReportListActivity.java:97)
05-28 14:24:37.905: E/AndroidRuntime(1775):     at de.webducer.android.worktime.beta.ui.fragment.ReportSelectorSpinnerFragment$1.onItemSelected(ReportSelectorSpinnerFragment.java:78)
05-28 14:24:37.905: E/AndroidRuntime(1775):     at android.widget.AdapterView.fireOnSelected(AdapterView.java:882)
05-28 14:24:37.905: E/AndroidRuntime(1775):     at android.widget.AdapterView.access$200(AdapterView.java:48)
05-28 14:24:37.905: E/AndroidRuntime(1775):     at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:848)
05-28 14:24:37.905: E/AndroidRuntime(1775):     at …
Run Code Online (Sandbox Code Playgroud)

android cursor nullpointerexception android-loadermanager

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

使用switch on类型获取类型值的Java泛型方法

我希望在下面有类似的东西(例如我将如何在C#中执行此操作),从SQLiteDB获取类型化的值:

private T GetValueFromDB<T>(String colName) {
    object returnValue = null;

    switch (typeof(T)) {
        case Boolean:
            returnValue = dbData.getInt(colName) == 1;
            break;

        case Int32:
            returnValue = dbData.getInt(colName);
            break;

        case Int64:
            returnValue = dbData.getLong(colName);
            break;

        case String:
            returnValue = dbData.getString(colName);
            break;
    }
    return (T)returnValue;
}
Run Code Online (Sandbox Code Playgroud)

是否有可能(使用switch case或if else)在Java中实现它?

java generics methods typeof switch-statement

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

Android:防止出现不同的微调框高度(空的和实心的)

我在布局上有一些微调器,并使用加载程序在后台从db加载数据。问题在于,空的微调框的高度较小,直到加载数据为止。所以布局跳了起来。

如何防止这种跳跃?

编辑(添加了微调器行布局)

微调器行:

<?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/Text1"
        style="@style/StyleSpinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

微调框下拉行:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="@dimen/style_spinner_row_padding" >

    <TextView
        android:id="@+id/Text1"
        style="@style/StyleSpinnerDropDownRow1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

    <TextView
        android:id="@+id/Text2"
        style="@style/StyleSpinnerDropDownRow2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/Text1" />

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

分配的样式:

<!-- // Spinner // -->
<style name="StyleSpinner" parent="AppTheme">
    <item name="android:textStyle">bold</item>
    <item name="android:gravity">start</item>
    <item name="android:textSize">@dimen/default_text_size_normal</item>
    <item name="android:padding">@dimen/style_spinner_row_padding</item>
</style>

<style name="StyleSpinnerDropDownRow1" parent="AppTheme">
    <item name="android:textStyle">bold</item>
    <item name="android:textSize">@dimen/default_text_size_normal</item>
</style>

<style name="StyleSpinnerDropDownRow2" parent="AppTheme">
    <item name="android:textStyle">normal</item>
    <item name="android:textSize">@dimen/default_text_size_small</item>
</style>
Run Code Online (Sandbox Code Playgroud)

屏幕截图:

在此处输入图片说明 在此处输入图片说明

layout android loader adapter spinner

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

Android 绑定和通知的 JUnit 测试

我想测试我的 Android 视图模型。特别是当 setter 应该通知更改或不通知时。

视图模型看起来像这样(具有更多可绑定的属性):

public class EditViewModel extends BaseObservable {

  private String _comment;
  @Bindable
  public String getComment() {
    return _comment;
  }

  public void setComment(String comment) {
    if (_comment == null && comment == null) {
      // No changes, both NULL
      return;
    }

    if (_comment != null && comment != null && _comment.equals(comment)) {
      //No changes, both equals
      return;
    }

    _comment = comment;
    // Notification of change
    notifyPropertyChanged(BR.comment);
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的 UnitTest 中,我注册了一个侦听器,以获取通知并使用以下类跟踪它们:

public class TestCounter {
  private int …
Run Code Online (Sandbox Code Playgroud)

android unit-testing mockito android-databinding

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

Xamarin.Forms UWP与.NetStandard 2.0和null资源

我们目前正在将我们的Xamarin项目从PCL迁移到.Net Standard 2.0,也就是核心库项目格式.大多数事情都很好.我们在核心项目中使用resx文件进行本地化.这适用于iOS和Android.

在UWP上我得到null了值,如果我尝试访问字符串ressources

var buttonText = AppResources.Cancel; // => null
Run Code Online (Sandbox Code Playgroud)

相同代码的PCL版本运行良好.是否需要初始化?

在调试时,我可以看到资源管理器有一个nullResourceSet,但是_WinRTResourceManager已经填充.

在此输入图像描述

resx xamarin.forms uwp .net-standard-2.0

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

Android:拆分ActionBar真正的父级高度

我使用动作栏(原点android,而不是ABS)并将我的视图相对定位在根布局(RelativeLayout)上.为了计算屏幕上的相对位置,我使用了我的视图的getParent().getHeight()/ getParent().getWidth()方法.使用正常的ActionBar,它可以正常工作.我得到父母的真实高度(活动高度 - 动作栏高度,例如800px显示器上的690px).但是如果我使用该splitActionBarWhenNarrow选项并显示底栏,我得到父母的相同高度(例如,在800px屏幕上再次为690px).因此,我的一些以编程方式定位的视图位于底部操作栏下方.

如果没有动作条,我怎样才能获得父级的真实高度?

编辑:

我读onWindowFocusChanged了活动方法的父宽度和高度.

android relativelayout android-actionbar

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