RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-212420

StriBog's questions

Martin Hope
StriBog
Asked: 2020-12-18 15:12:38 +0000 UTC

VS 2019 和 GIT,合并变更行翻译

  • 0

当 Merge 出现截图中这样的问题时,文件的行翻译从Unix LF更改为Windows CRLF。如何解决这个问题呢?

我在 VS 文档中找到了“Encodings and line endings”,但是我没有这些设置,包括注释中提到的服务菜单

我正在使用 VS 2019 社区版 我使用 GitKraken 进行合并

在此处输入图像描述

git
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-10-30 20:17:45 +0000 UTC

隐式转换错误[重复]

  • 1
这个问题已经在这里得到了回答:
使用 get/set 时的 StackOverflowException 1 个回答
2年前关闭。

我正在写一类有理数。隐式转换会引发错误 (StackOverflowException),其原因无法理解。下面是调用代码、类和错误截图

调用隐式转换

    [Test]
    public void ConvertFromInt()
    {
        Rational r = 5;
        AssertEqual(5, 1, r);
    }

理性类

public class Rational
{
    public int Numerator { get; set; }
    public int Denominator
    {
        get { return Denominator; }
        set
        {
            if (value <= 0)
                IsNan = true;
            else
                IsNan = false;
            Denominator = value;
        }
    }
    public bool IsNan { get; set; }

    public Rational(int numenator, int detominator)
    {
        Numerator = numenator;
        Denominator = detominator;
    }
    public Rational(int numenator) : this(numenator,1) { }
    public static implicit operator Rational(int number)
    {
        return new Rational(number);
    }
}

在此处输入图像描述

c#
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-08-26 17:27:53 +0000 UTC

C++移动语义如何实现?

  • 1

请帮助我理解我的示例中移动语义的实现

我有一个简单的字符串类

class DynamicString
{
public:
    char* CharArray;
    int Length;
    DynamicString(char* charArray, int length);
    ~DynamicString();
    DynamicString(const DynamicString &dsObject);
    DynamicString&operator= (const DynamicString &dsObject);
}

到目前为止,我正在尝试在没有移动语义的情况下实现复制和赋值运算符

DynamicString::~DynamicString()
{
    delete[] CharArray;
    CharArray = nullptr;
}

DynamicString::DynamicString(const DynamicString & dsObject)
{
    Length = dsObject.Length;
    CharArray = new char[Length];
    for (int i = 0; i < Length; i++)
        CharArray[i] = dsObject.CharArray[i];
}

DynamicString & DynamicString::operator=(const DynamicString & dsObject)
{
    if (Length == dsObject.Length)
        for (int i = 0; i < Length; i++)
            CharArray[i] = dsObject.CharArray[i];
    else
    {
        delete[] CharArray;
        Length = dsObject.Length;
        CharArray = new char[Length];
        for (int i = 0; i < Length; i++)
            CharArray[i] = dsObject.CharArray[i];
    }
    return *this;
}

阅读各种资源,据我了解,有必要将数组引用从一个重新排列到另一个。有点像CharArray = dsObject.CharArray;内部复制和赋值,但问题是,在这种情况下,如果删除其中一个对象,是否会删除第二个对象的内容?问题是来自内存,如果丢失了对原始对象的引用,这种情况下会不会出现内存泄漏?

c++
  • 2 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-06-05 18:37:11 +0000 UTC

傅里叶变换,寻找公式的库/解决方案/解释

  • 0

任务是将傅里叶变换应用于一个小系列(12 个值)

据我了解,快速傅里叶变换不是很合适,因为 它需要2次的数据量,这意味着它将三分之一的数据减少到8个值,这很关键

我正在寻找现成的解决方案,或对公式的解释,以便自己实施

我在网上找到了这个公式

在此处输入图像描述

我试着指望它,然后将FFT 中的第一个值与 wiki进行比较。我得到的价值观很不一样。

在此处输入图像描述

我正在转换的系列的值(6.6、6.3、6、6.3、6.6、6.6、7.2、6.9、6.9、7.2、6.3、6)

我这样计算: 6.6 * exp(-2*3.141592*1*0 / 12) + 6.3*exp(-2.3.141592*1*1 / 12) + ... 所以我对所有的 x 和 n 进行排序值变化1直到12并将其全部加起来,所以我得到上面屏幕截图中的值78.9这是我认为是错误的,还是来自wiki的FFT实现错误,或者FFT和非快速傅里叶有不同的第一值?

我附上公式的实现

public static Complex[] FT(Complex[] X)
        {
            int N = X.Length;
            Complex[] result = new Complex[N];
            for (int k = 0; k < N; k++)
            {
                for (int n = 0; n < N; n++)
                {
                    double arg = -2 * Math.PI * k * n/ N;
                    var complex = new Complex(Math.Cos(2 * Math.PI * k * n / N), Math.Sin(-2 * Math.PI * k * n / N));
                    result[k] += X[n] * complex;
                }
            }
            return result;
        }
c#
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-03-30 01:47:43 +0000 UTC

Excel图表,如何在图表中组合数据

  • 0

有两组数据,数值是时间,如何在excel中建图,让数值准确的标注在图上?如何在数据源中同时使用 X 和 Y 值?下图显示横(时间)轴上的点重合,虽然数据中不是这样,自然是因为图表数据源中只能指定一个数据集

截图文件

在此处输入图像描述

在此处输入图像描述

excel
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-01-15 18:27:16 +0000 UTC

修改或添加条目(如果存在)

  • 2

任务是修改(重写)记录的值,如果存在,如果这样的记录不存在,那么添加这样的记录

我正在寻找最简单、最快和最正确的方法来做到这一点。

下面是一个使用C#代码解决此问题的错误示例,其中我在尝试添加记录时截获了一个错误(我使用 nick 作为主键,因此存在具有此类值的记录时会发生错误)

// добавление
try
{
    sqlCmd.CommandText = "INSERT INTO Money ('nick', 'money') values ('StriBog45' , '300')";
    sqlCmd.ExecuteNonQuery();
}
catch (SQLiteException ex)
{
    Console.WriteLine("Error: " + ex.Message);
    // модификация
    try
    {
        sqlCmd.CommandText = "UPDATE Money SET money = 600 WHERE nick = 'StriBog45'; ";
        sqlCmd.ExecuteNonQuery();
    }
catch (SQLiteException xex)
{
    Console.WriteLine("Error: " + xex.Message);
}

有一个想法可以通过 SQL 命令中的 if else 来完成,但是随后执行了对存在的额外搜索,这可能会减慢工作速度,例如

if(exists(nick = 'StriBog45'))
UPDATE Money SET money = 600 WHERE nick = 'StriBog45'
Else
INSERT INTO Money ('nick', 'money') values ('StriBog45' , '300')

毕竟,团队Insert into检查了主键的重复,这意味着它本身已经使用了存在的外表,在我看来,这可以以某种方式使用

在Stackoverflow 中我找到了这样一个选项,但是它需要引入额外的变量并且非常庞大

$res = mysql_query('select count(*) FROM table WHERE id = 1') or die();
$row = mysql_fetch_row($res);
if ($row[0] > 0)
{
    // Есть данные
}
else
{
    // нет данных
}
c#
  • 3 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-11-30 01:46:51 +0000 UTC

android如何从另一个应用程序获取数据?

  • 0

有一个目标:“从另一个应用程序获取心率数据”,我们说的是别人的HBand 2.0应用程序。ps 有这样一个问题,因为。无法直接从手环获取此数据,已加密

以编程方式,这可以从另一个应用程序完成,例如访问这样的应用程序并请求有关心率的信息?

我通过 看到了程序的启动Process proc = Runtime.getRuntime().exec("программа");,但我可以通过它获得必要的信息吗?

还有其他方法可以从程序中获取这些信息吗?

java
  • 2 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-11-27 02:41:27 +0000 UTC

字节数组到字符串为“0”和“1”

  • 1

如何将位数组转换为文本,使其看起来像一组 0 和 1?

如果您尝试使用该方法bytes.ToString(),那么会发生这种情况:[B@a0e2ce5我有条件地需要 101100110101

这种转换是否有现成的标准方法?

java
  • 3 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-10-08 12:45:34 +0000 UTC

蓝牙 LE 不检测设备

  • 2

我正在尝试使用Bluetooth LE发现设备,我按照此库中为 Xamarin 编写的方法进行操作,但检测到 0 个设备

包括在 android 中的必要清单。将扫描时间增加到 30 秒,但没有。在设备上启用蓝牙,版本 4.0

Asus_Z00ED 设备 (Android 6.0 - API 23)。在 Android 8.1 上使用目标创建的项目。试图在清单中切换目标 android 版本(8.0、9.0)但也没有检测到

检测不到位还有哪些其他原因?

public class Page6 : ContentPage
    {
        IBluetoothLE ble;
        IAdapter adapter;
        ObservableCollection<IDevice> deviceList;
        Label label;

        public Page6()
        {
            ble = CrossBluetoothLE.Current;
            adapter = CrossBluetoothLE.Current.Adapter;
            deviceList = new ObservableCollection<IDevice>();

            label = new Label { Text = "Welcome to Xamarin.Forms!" };
            var buttonList = new Button() { Text = "Devices List" };
            buttonList.Clicked += ButtonList_Clicked;

            Content = new StackLayout
            {
                Children = {
                    label,
                    buttonList,
                }
            };
        }

        private async void ButtonList_Clicked(object sender, EventArgs e)
        {
            deviceList.Clear();
            adapter.ScanTimeout = 30000;
            adapter.DeviceDiscovered += (s, a) =>
            {
                deviceList.Add(a.Device);
            };

            await adapter.StartScanningForDevicesAsync(); // сканирование

            label.Text = deviceList.Count.ToString();
        }
    }

宣言

c#
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-06-09 03:35:48 +0000 UTC

c# 为集合覆盖 ToString()

  • 3

如何覆盖集合的 ToString() 方法?

List<Place> spisok = new List<Place>();
for (int i = 0; i < 20; i++)
     spisok.Add(new Place(PlaceStatus.Free));

我想在打电话时spisok.ToString()收到格式为 0,0,0,0 的字符串(即用逗号分隔的元素)

或者类似的这样一个集合

var spisok = new Place[20];
for (int i = 0; i < 20; i++)
     spisok[i] = new Place(PlaceStatus.Free));

下面是使用的元素的代码。在类中我试图重载 ToString() 方法,当对象为 1 时,它会给出数值。但在数组的情况下,这是文本 - 关于类的记录

    public enum PlaceStatus
    {
        Free,
        Booked,
        Paid,
        Confirmed
    }
    public class Place
    {
        public PlaceStatus Status { get; set; }

        public Place(PlaceStatus status)
        {
            Status = status;
        }

        public override string ToString()
        {
            return ((int)Status).ToString();
        }
    }
c#
  • 2 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-03-01 18:34:17 +0000 UTC

Xamarin.Android,将文件保存到 sd 以供公众访问

  • 1

如何在 Xamarin.Android 中将文件保存到外部源(SD 卡)?

有一个任务来保存文件,以便以后用户可以在设备上和应用程序之外使用这个文件。不幸的是,这违反了 iOS 政策,所以不可能在那里,但正因为如此,Android 在 Xamarin 中也受到限制

下面的代码正在将文件保存在专用目录中。但是这个目录对用户是隐藏的,你不能使用这些文件。

public class FileWorker_Android : IFileWorker
    {
        public Task DeleteAsync(string filename)
        {
            // удаляем файл
            File.Delete(GetFilePath(filename));
            return Task.FromResult(true);
        }

        public Task<bool> ExistsAsync(string filename)
        {
            // получаем путь к файлу
            string filepath = GetFilePath(filename);
            // существует ли файл
            bool exists = File.Exists(filepath);
            return Task<bool>.FromResult(exists);
        }

        public Task<IEnumerable<string>> GetFilesAsync()
        {
            // получаем все все файлы из папки
            IEnumerable<string> filenames = from filepath in Directory.EnumerateFiles(GetDocsPath())
                                            select Path.GetFileName(filepath);
            return Task<IEnumerable<string>>.FromResult(filenames);
        }

        public async Task<string> LoadTextAsync(string filename)
        {
            string filepath = GetFilePath(filename);
            using (StreamReader reader = File.OpenText(filepath))
            {
                return await reader.ReadToEndAsync();
            }
        }

        public async Task SaveTextAsync(string filename, string text)
        {
            string filepath = GetFilePath(filename);
            using (StreamWriter writer = File.CreateText(filepath))
            {
                await writer.WriteAsync(text);
            }
        }
        // вспомогательный метод для построения пути к файлу
        string GetFilePath(string filename)
        {
            return Path.Combine(GetDocsPath(), filename);
        }
        // получаем путь к папке MyDocuments
        string GetDocsPath()
        {
            return Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        }
    }

从Android文档中,所有使用外部源(SD 卡)的工作都是通过 进行的Environment.getExternalStoragePublicDirectory,但是在 XamarinEnvironment中没有这样的方法

android
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-02-14 16:16:32 +0000 UTC

Xamarin 文件系统

  • 0

在 Android/UWP 中找不到保存的文件所在的位置

按照. _ 一切都保存成功了,程序结束后这些文件还在目录中,但是我在程序外找不到!我试图通过 Android 和 Windows 10 (UWP) 上的搜索引擎找到它,但任何地方都没有这样的文件。Android-e 上的内容,显示隐藏文件的窗口中的内容已启用

在 Android 代码中,从目录中获取所有文件如下所示:

IEnumerable<string> filenames = from filepath in Directory.EnumerateFiles(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))
                                        select Path.GetFileName(filepath);

顺便说一句,当我试图查看音乐中的内容(更改SpecialFolder.MyDocuments为SpecialFolder.MyMusic

我在 Android 上找到了这个文件夹“/com.companyname.TestNavigationPage2/files/”,但只有 . override,其中包含库和资源(无资源)在此处输入图像描述 在此处输入图像描述

在此处输入图像描述

android
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-02-02 17:28:26 +0000 UTC

C# 寻找用于快速过滤的库/类

  • 3

我对请求传入的图像应用过滤器,然后将其发送回来。我现在在 Bitmap 的帮助下处理它,非常方便,但性能受到很大影响。是否有专门为此目的的库/类?

从传入流转换为图片

var Picture = new Bitmap(listenerContext.Request.InputStream);

迭代像素以设置新颜色。GetPixel 方法性能低下(在我看来)

for (int x = 0; x < bmp.Width; x++)
    for (int y = 0; y < bmp.Height; y++) {
        var temp = bmp.GetPixel(x,y);
        bmp.SetPixel(x,y, Color.FromArgb(temp.A,temp.R,temp.G,temp.B));
    }

保存图像以响应请求

Picture.Save(listenerContext.Response.OutputStream, ImageFormat.Png);
c#
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-11-07 02:41:02 +0000 UTC

使用列表视图的老虎机

  • 0

我想用代码“滚动”列表视图。尚不完全清楚 ListView 中的滚动是如何工作的,如何获取它的位置。我正在尝试使用该方法更改位置ScrollTo,但在任何位置都没有发生任何事情

他们是这样表示的:使用设置滚动的方法,每百分之一秒我将滚动位置向下移动 N。如果我们已经到了边缘,那么我们设置对面边缘的滚动位置并继续移动。

using Android.App;
using Android.Widget;
using Android.OS;
using System;
using Android.Media;
using System.Collections.Generic;
using Android.Views;

namespace TestChart
{
    [Activity(Label = "Slot Machine", MainLauncher = true)]
    public class MainActivity : Activity
    {
        String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
                "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
                "Linux", "OS/2","Android", "iPhone", "WindowsMobile",
                "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
                "Linux", "OS/2" };


        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            Button buttonRoll = FindViewById<Button>(Resource.Id.buttonRoll);
            ListView listViewSlotMachine = FindViewById<ListView>(Resource.Id.listViewSlotMachine);

            var adapter = new ArrayAdapter<String>(this, Resource.Layout.my_list_item, values);

            // присваиваем адаптер списку
            listViewSlotMachine.Adapter = adapter;

            buttonRoll.Click += (sender, e) =>
            {
                listViewSlotMachine.ScrollTo(0, 0); // ничего не происходит
            };
        }
    }
}
android
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-10-26 13:12:03 +0000 UTC

NFC可以安装在手机上吗?

  • 0

我想使用 NFC 开发应用程序。

手机上没有NFC。

我在网上看了,好像可以用NFC天线或者NFC SIM卡作为模块安装。但是这个 NFC 会看到手机吗?看起来它需要更多固件。在硬件细节中只字不提 NFC

手机型号:华硕Z00ED

电话信息

nfc
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-10-14 02:04:18 +0000 UTC

Javafx + Scala,按坐标排列元素

  • 0

我尝试通过各种方式手动设置窗口中元素(按钮)的位置(我尝试将几个按钮一个接一个地依次放置)。我按顺序创建了三个按钮,但屏幕上只显示最后一个按钮,只有按下它才有效。我找到了一种方法setLayoutX,似乎可以让您沿 X 轴设置位置,但这无济于事,元素位于左上角(显然三个都在那里,一个在另一个下方)。
如果不GridPane使用StackPane,则元素位于中心,也只有一个。一般来说,我无法理解这是怎么回事)

import javafx.application.Application
import javafx.event.ActionEvent
import javafx.event.EventHandler
import javafx.scene.Scene
import javafx.scene.control.Button
import javafx.scene.layout.StackPane
import javafx.stage.Stage
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.text;
import javafx.scene.control;
import javafx.scene.paint;
import javafx.geometry;

object Main {
  def main(args:Array[String])
  {
    val witchers: List[String] = new List();
    witchers.AddBack("The Witcher")
    witchers.AddBack("The Witcher 2")
    witchers.AddBack("The Witcher 3")

    Application.launch(classOf[Main], args: _*)
  }
}

class Main extends Application {

  override def start(primaryStage: Stage) {
    primaryStage.setTitle("For Romanov")
    var buttons = new List[Button]
    val pane = new GridPane//StackPane

    val witchers: List[String] = new List();
    witchers.AddBack("The Witcher")
    witchers.AddBack("The Witcher 2")
    witchers.AddBack("The Witcher 3")

    var layoutX = 5.toDouble;
    for (witcher <- witchers) {
      var btn = new Button
      btn.setText(witcher)
      btn.setLayoutX(layoutX)
      btn.setOnAction(new EventHandler[ActionEvent] {
        override def handle(e: ActionEvent) {
          println(witcher)
        }
      })
      var hbBtn = new HBox(10);
        hbBtn.setAlignment(javafx.geometry.Pos.BASELINE_RIGHT);
        hbBtn.getChildren().add(btn);
      //pane.getChildren.add(btn)
        pane.add(hbBtn, 40, 40)
      layoutX += 100
    }    

    primaryStage.setScene(new Scene(pane, 500, 500))
    primaryStage.show
  }

}
javafx
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-10-03 23:57:11 +0000 UTC

C# ImmutableList 怎么用呢?

  • 2

一开始我绊倒了,我无法初始化列表,显然是由于列表是不可变的如何使用它?如何为它分配一个数组?

ImmutableList<int> firstList = new ImmutableList<int>();

在此处输入图像描述

c#
  • 3 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-09-26 21:46:46 +0000 UTC

C# Emgu,不知道 Capture 和 HaarCascade 类

  • 2

我正在尝试使用 Emgu 库进行识别。将所有 opencv.dll 添加到项目中,并附有复制到项目的说明 添加到 emgu 的链接。从使用 Emgu 没有问题的事实来看,那么问题在于 .dll opencv 我缺少什么?

Visual Studio 2017. Emgu 版本:emgucv-windesktop 3.2.0.2682-сuda

在此处输入图像描述 在此处输入图像描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Structure;
using Emgu.CV.CvEnum;
using System.Windows;

namespace Emgu.FaceDetection
{
    public partial class Form1 : Form
    {
        private Capture cap;
        private HaarCascade haar;
        public Form1()
        {
            InitializeComponent();
        }
    }
}
c#
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-09-10 17:45:38 +0000 UTC

openCV识别功能错误

  • 1

我正在使用 opencv 3.3.0 在 Visual Studio 2017 中编写。我从工作示例中获取了代码,但是有以前版本的 opencv

#include <iostream>
#include <stdio.h>

#include <opencv2\opencv.hpp>
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace std;
using namespace cv;

int main()
{
Mat image;
image = imread("lena.jpg", CV_LOAD_IMAGE_COLOR);
imshow("cam", image);
// Load Face cascade (.xml file)
CascadeClassifier face_cascade;
face_cascade.load("С:/opencv/sources/data/haarcascades/haarcascade_frontalface_alt2.xml");

// Detect faces
std::vector<Rect> faces;
/*face_cascade.detectMultiScale(image, faces,
    1.1, 2, 0
    //|CASCADE_FIND_BIGGEST_OBJECT
    //|CASCADE_DO_ROUGH_SEARCH
    //|CASCADE_DO_CANNY_PRUNING
    | CASCADE_SCALE_IMAGE,
    Size(30, 30));*/
face_cascade.detectMultiScale(image, faces, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30));

/*// Draw circles on the detected faces
for (int i = 0; i < faces.size(); i++)
{
    Point center(faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5);
    ellipse(image, center, Size(faces[i].width*0.5, faces[i].height*0.5), 0, 0, 360, Scalar(255, 0, 255), 4, 8, 0);
}*/

//namedWindow("Win");
waitKey(0);
return 0;
}

在此处输入图像描述

c++
  • 1 个回答
  • 10 Views
Martin Hope
StriBog
Asked: 2020-05-26 15:56:30 +0000 UTC

android 上的 libgdx sqlite,.db 不可移植到 android

  • 2

机器人工作室。在 PC 上,从数据库读取成功,在 Android 上数据库为空。我将数据库本身存储在 assets 目录中,与所有图片所在的位置相同。所有在android中没有问题的图片都是用的

dbHandler = DatabaseHandlerFactory.getNewDatabaseHandler(DATABASE_NAME, DATABASE_VERSION, DATABASE_CREATE, null);
dbHandler.setupDatabase();
dbHandler.openOrCreateDatabase();

dbHandler 在手机中找不到 .db 文件并创建新的空数据库,我如何将数据库传输到 android 以便我可以读取它?

AndroidLauncher 代码基于 Chaynik 的回答(有效)

import android.content.Context;
import android.os.Bundle;

import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class AndroidLauncher extends AndroidApplication {
    Context mycontext;
    private static String DB_NAME = "database.db";
    private String DB_PATH;
    private void copydatabase() throws IOException {
        //Open your local db as the input stream
        InputStream myinput = mycontext.getAssets().open(DB_NAME);

        // Path to the just created empty db
        String outfilename = DB_PATH + DB_NAME;

        //Open the empty db as the output stream
        OutputStream myoutput = new FileOutputStream(mycontext.getDatabasePath(DB_NAME));

        // transfer byte to inputfile to outputfile
        byte[] buffer = new byte[1024];
        int length;
        while ((length = myinput.read(buffer))>0) {
            myoutput.write(buffer,0,length);
        }

        //Close the streams
        myoutput.flush();
        myoutput.close();
        myinput.close();
    }
    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
        mycontext = getContext();
        DB_PATH = getApplicationContext().getPackageName()+"/databases/";
        try {
            copydatabase();
        } catch(IOException e) {};
        initialize(new ReactionTeacher(1), config);
    }
}
android
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5