小编Edu*_*ona的帖子

如何在没有初始化和特定数量的元素的情况下在Kotlin中创建对象数组?

我想在Kotlin中创建一个具有特定数量元素的对象数组,问题是我现在没有声明中每个对象初始化的当前值,我试过:

var miArreglo = Array<Medico>(20, {null})
Run Code Online (Sandbox Code Playgroud)

在Java中,我有这个,正是我想要的,但我需要它在Kotlin中.:

Medico[] medicos = new Medico[20];

for(int i = 0 ; i < medicos.length; i++){
    medicos[i] = new Medico();

}
Run Code Online (Sandbox Code Playgroud)

与上述Java代码相同的Kotlink是什么?

另外,我试过:

var misDoctores = arrayOfNulls<medic>(20)

for(i in misDoctores ){
    i = medic()
}
Run Code Online (Sandbox Code Playgroud)

但我在Android Studio上给我看了一条消息:"Val无法重新分配"

java arrays object kotlin

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

如何使用 FileProvider 访问下载文件夹?

我制作了一个应用程序,它在一个文件夹(由同一应用程序创建)内创建一个*.csv文件,同时在 Android 的下载文件夹内。

该文件可以通过 ShareIntent 共享,问题是当应用程序在 Android Oreo 中运行并且用户尝试创建*.csv文件时,应用程序崩溃,引发的异常是:

android.os.FileUriExposedException: 
  at android.os.StrictMode.onFileUriExposed (StrictMode.java:1958)
  at android.net.Uri.checkFileUriExposed (Uri.java:2348)
  at android.content.ClipData.prepareToLeaveProcess (ClipData.java:941)
  at android.content.Intent.prepareToLeaveProcess (Intent.java:9735)
  at android.content.Intent.prepareToLeaveProcess (Intent.java:9741)
  at android.content.Intent.prepareToLeaveProcess (Intent.java:9720)
  at android.app.Instrumentation.execStartActivity (Instrumentation.java:1795)
  at android.app.Activity.startActivityForResult (Activity.java:4495)
  at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult (BaseFragmentActivityJB.java:50)
  at android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:79)
  at android.app.Activity.startActivityForResult (Activity.java:4453)
  at android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:859)
  at android.app.Activity.startActivity (Activity.java:4814)
  at android.app.Activity.startActivity (Activity.java:4782)
  at com.bpl.spart.bloodpressurelogbook.MainActivity$createReportTask.onPostExecute (MainActivity.java:517)
  at com.bpl.spart.bloodpressurelogbook.MainActivity$createReportTask.onPostExecute (MainActivity.java:420)
Run Code Online (Sandbox Code Playgroud)

我知道我应该使用 FileProvider 在 API 级别 > 24 中创建 Uri,但是如何使用 FileProvider 提供对下载文件夹内文件的访问权限?

这是我当前的代码:

        Intent ShareIntent = new Intent(android.content.Intent.ACTION_SEND);
        ShareIntent.setType("text/csv"); …
Run Code Online (Sandbox Code Playgroud)

java csv android android-intent

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

Unity 3D 中的单个画布和多个面板与多个画布

我正在使用 Unity 5 为 Hololens 开发 Holographic 应用程序,我需要创建一些 UI,那么哪种近似值会提供更好的性能?

具有多个面板或多个画布的单个画布?

我需要具有不同位置的多个 UI 元素(文本标签、按钮等),特别是具有不同 Z 轴值。

user-interface canvas unity-game-engine

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

如何使用Glide和URI将图像设置为ImageView?

我正在尝试在redWifi.getImagen()使用.load(Uri.parse("file://android_asset/" + redWifi.getImagen()))库中显示图像,图像位于res> drawable文件夹中,其名称从db中重新获取.如何使用Uri获取资源?,redWifi.getImagen()返回类似"imagename.png"的字符串.

我正在使用下一个代码,但没有显示图像.

Glide.with(detallesRedGuardadaActivity.this)
                .load(Uri.parse("file:///android_asset/" + redWifi.getImagen()))
                .asBitmap()
                .into(iconoRed);
Run Code Online (Sandbox Code Playgroud)

我试过.load(Uri.parse("file://android_asset/" + redWifi.getImagen()))但仍然没有工作.

android imageview android-glide

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

如何在运行时使用 .bmp 文件并在 Unity 中创建纹理?

我在一个 Unity 项目中工作,用户选择.bmp用于制作Texture2D并粘贴到模型的图像文件(格式),我创建了下一个代码,我可以正常使用.png.jpg文件,但是当我尝试加载时,.bmp我得到了只有(我假设)带有红色“?”的默认纹理 符号,所以我认为是图像格式,如何.bmp在运行时使用文件创建纹理?

这是我的代码:

public static Texture2D LoadTexture(string filePath)
{
    Texture2D tex = null;
    byte[] fileData;

    if (File.Exists(filePath))
    {
        fileData = File.ReadAllBytes(filePath);
        tex = new Texture2D(2, 2);
        tex.LoadImage(fileData);
    }

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

c# textures bmp texture2d unity-game-engine

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

如何在没有初始化的情况下在Kotlin中声明一个val,可以从课堂上的任何乐趣中获得?

我正在Kotlin中创建一个内容提供程序,它使用数据库存储数据并使用加载器查询它们,问题是,我需要从任何函数都可以访问我的DBHelper变量:onCreate,query,update等... java这很容易但是在Kotlin中,IDE告诉我必须初始化val,我尝试使用init块,但android studio说DBHelper必须在onCreate()中初始化

那么,如何在Kotlin中创建一个可以为类中的任何函数启用的val,并且可以在像Java这样的onCreate函数中初始化?

这是我的代码:

public class ProviderMMR : ContentProvider() {
var dbHelper


companion object Matcher{
    var uriMatcher = UriMatcher(UriMatcher.NO_MATCH)

    init{
        uriMatcher.addURI(MMDContract.columnas.AUTHORITY,MMDContract.columnas.TABLA_FARMACIA,1)
    }

}

override fun onCreate(): Boolean {
    dbHelper  =  mmrbd(context)

    return true
}

override fun insert(uri: Uri?, values: ContentValues?): Uri {
    val db = dbHelper.writableDatabase

    val rowID = db.insert(MMDContract.columnas.TABLA_FARMACIA, null, values)


    val uri_actividad = ContentUris.withAppendedId(MMDContract.columnas.CONTENT_BASE_URI, rowID)

    return uri_actividad



}

override fun query(uri: Uri?, projection: Array<out String>?, selection: String?, selectionArgs: Array<out String>?, sortOrder: String?): Cursor {
    TODO("not implemented") //To …
Run Code Online (Sandbox Code Playgroud)

android kotlin

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

如何使用 SimpleDateFormat.parse() 将 Calendar.toString() 转换为日期?

我正在开发一个使用数据库的 Android 应用程序,每次用户插入新寄存器时,当前数据和时间都保存在数据库中使用

Calendar cal = Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)

所以,当我从数据库中检索数据时,得到了一个这样的字符串:

java.util.GregorianCalendar[time=1496007575129,areFieldsSet=true,lenient=true,zone=America/Mexico_City,firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2017,MONTH=4,WEEK_OF_YEK_OF_222 5,DAY_OF_MONTH=28,DAY_OF_YEAR=148,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=39,SECOND=35,MILLISECOND=129,ZONE_060SET0=120,ZONE_600SET ]

当我尝试使用 SimpleDateFormat.parse 转换该字符串以在 RecyclerView 中显示它时,问题就出现了,我总是得到相同的日期:09/04/2017。

这是我的 RecViewAdapter.java 中的代码:

@Override
public void onBindViewHolder(ViewHolder holder,int position){
    items.moveToPosition(position);

    String s,d,p,f;


    s = items.getString(ConsultaTomas.SISTOLICA);
    holder.systolica.setText(s);

    d = items.getString(ConsultaTomas.DIASTOLICA);
    holder.diastolica.setText(d);

    p = items.getString(ConsultaTomas.PULSO);
    holder.pulso.setText(p);

    f = items.getString(ConsultaTomas.FECHA);
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

    try {
        holder.fecha.setText(sdf.format(sdf.parse(f)));

    }catch (ParseException e){
        Log.d("PARSINGFECHA","Error al parcear fecha");
    }


}
Run Code Online (Sandbox Code Playgroud)

其他数据在 RecView 中正确显示,日历字符串都不同,因此这些字符串中的日期/小时不相同。所以,问题是:

如何Calendar.toString()使用转换为日期SimpleDateFormat.parse()

这是在真实设备中运行该应用程序的结果: 两个布偶

java android calendar simpledateformat

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

Room中的主键应该是Int还是Long?

阅读完文档后,我正在设计一个可在Android中使用Room实现的数据库,我发现关于将Int或Long用作主键没有任何建议。

在某些地方,它们使用int主键定义实体:

@Entity
data class User(
    @PrimaryKey var id: Int,
    var firstName: String?,
    var lastName: String?
)
Run Code Online (Sandbox Code Playgroud)

但是在其他地方,它表示如果要获取插入的最后一行的ID,则应使用long插入。

@Dao
interface MyDao {
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insertUsers(vararg users: User)

    @Insert
    fun insertBothUsers(user1: User, user2: User)

    @Insert
    fun insertUsersAndFriends(user: User, friends: List<User>)
}
Run Code Online (Sandbox Code Playgroud)

如果@Insert方法仅接收1个参数,则它可以返回long,它是插入项的新rowId。如果参数是数组或集合,则应返回long []或List。

因此,房间的主键应该是Int还是Long?是否有关于选择一种类型而不是另一种类型的最佳实践?

database android kotlin

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

如何在C++的头文件中使用在命名空间中声明的类型?

我正在使用C++在Visual Studio 2017中创建DirectX11应用程序,我需要在我的"GeometryGenerator.h"头文件中声明一个数据结构.

问题是当我尝试使用类型:我的头文件中的XMFLOAT3时,当我尝试运行项目时,我从Visual Studio收到错误并给我这样的消息:

“C4430: missing type specifier - int assumed”
Run Code Online (Sandbox Code Playgroud)

在我声明XMFLOAT3类型的变量的行中

这是我的代码:

#pragma once
#include "..\Common\DeviceResources.h"
#include "ShaderStructures.h"
#include "..\Common\StepTimer.h"

namespace DirectX11Engine
{

    class GeometryGenerator {
    public: 
        struct Vertex
        {
            Vertex() {}
            Vertex(const XMFLOAT3& p, const XMFLOAT3& n, const XMFLOAT3& t, const XMFLOAT2& uv)
                : Position(p), Normal(n), TangentU(t), TexC(uv) {}
            Vertex(
                float px, float py, float pz,
                float nx, float ny, float nz,
                float tx, float ty, float tz,
                float u, float v)
                : Position(px, py, pz), Normal(nx, …
Run Code Online (Sandbox Code Playgroud)

c++ namespaces header directx-11

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