我们一直在讨论这个问题,但是我们不知道创建视图模型工厂来创建视图模型而不是直接实例化视图模型的原因。创建仅创建视图模型的工厂有什么好处?
我只是举了一个简单的示例,说明我没有工厂如何做到这一点
这是kodein模块:
val heroesRepositoryModel = Kodein {
bind<HeroesRepository>() with singleton {
HeroesRepository()
}
bind<ApiDataSource>() with singleton {
DataModule.create()
}
bind<MainViewModel>() with provider {
MainViewModel()
}
}
Run Code Online (Sandbox Code Playgroud)
我不使用工厂实例化viewmodel的Activity部分
class MainActivity : AppCompatActivity() {
private lateinit var heroesAdapter: HeroAdapter
private lateinit var viewModel: MainViewModel
private val heroesList = mutableListOf<Heroes.MapHero>()
private var page = 0
private var progressBarUpdated = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
viewModel = ViewModelProviders.of(this)
.get(MainViewModel::class.java)
initAdapter()
initObserver()
findHeroes()
}
Run Code Online (Sandbox Code Playgroud)
我直接实例化用例的ViewModel,而无需在构造函数中使用它
class MainViewModel : ViewModel(), CoroutineScope { …Run Code Online (Sandbox Code Playgroud) 我在xml(布局,字符串,drawables ......)中有很多这样的错误.我试图将每个列的空间更改为3,在我有此错误的行中放置3个选项卡,但我仍然在SonarQube中出现此错误.我怎么解决这个问题?
我在这里举一个示例,我收到此错误:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64.42dp"
android:height="68.76dp"
android:viewportWidth="64.42"
android:viewportHeight="68.76">
<path
android:fillColor="#141412"
android:fillType="evenOdd"
android:pathData="M38.62,43.24c0.69,0.1,1.2,0.75,2.01,0.86c1.33,0.18,2.57-0.02,3.7-0.77 c1.98-1.33,3.56-3.23,3.66-5.65c0.01-0.34-0.04-1.42-0.04-1.69c0-1.01-0.57-1.32-0.75-2.3c-0.3-1.61,1.23-0.8,1.42,0.33 c-0.13-0.77,0.69-4.28,2.59-2.64c1.63,1.4,0.07,2.82-0.24,4.24c-0.14,0.63-0.45,1.84-0.54,2.48c0,0,0,0-0.01,0 c-0.35,2.33-1.41,4.8-2.95,6.34c-1.35,1.35-3.05,2.76-5.02,2.92c-1.15,0.1-3.25-0.08-4.27-0.66l0.21,0.42 C36.59,47.68,36.57,42.95,38.62,43.24z" />
<path
android:fillColor="#C31924"
android:fillType="evenOdd"
android:pathData="M61.69,43.35c0.82-2.66,2.14-11.44,2.28-12.49c0.13-1.05,0.42-2.32,0.45-3.83 c0.03-1.51-1.36-3.05-3.35-3.04c-0.36,0-16.15,0.06-16.92,0.07c-0.52,0-0.66-0.27-0.63-0.56c0.27-2.7,0.8-6.13,0.88-6.58 c0.08-0.41,0.16-0.8,0.17-1c0.02-0.2,0.06-0.49-0.42-0.62c-0.49-0.12-4.1-0.59-21.86-0.5C5.2,14.89,0.91,15.4,0.43,15.53 c-0.49,0.13-0.44,0.42-0.42,0.62c0.01,0.2,0.13,0.7,0.18,0.99c0.07,0.33,0.71,3.87,0.96,6.58c0.68,7.77,1.49,39.99,1.6,41.09 c0.08,0.77,0.31,2.1,1.91,3.03c1.6,0.94,16.85,0.92,17.9,0.91c1.05,0.01,16.3-0.13,17.89-1.09c1.59-0.96,1.81-2.28,1.88-3.05 c0.04-0.41,0.14-5.19,0.15-5.43c0.02-0.25,0.17-0.69,0.63-0.75c0.82-0.1,1.64-0.2,2.9-0.46c3.83-0.79,6.07-2.06,8.61-3.89 C59.28,50.69,60.88,46.02,61.69,43.35 M56.84,43.88c-1.03,2.45-3.81,7.25-8.9,9.07c-1.94,0.7-4.31,1.21-4.71,1.21 c-0.56,0.01-0.63-0.04-0.63-0.39c0-0.36,0.17-9.65,0.21-10.87c0.22-6.95,2.25-12.22,4.9-13.52c0.57-0.28,1.45-0.75,3.89-0.76 c2.95-0.02,6.98-0.03,7.36-0.04c0.38,0,0.66,0,0.66,0.31c0.01,0.44-0.61,4.63-0.67,5.04C58.87,34.35,57.85,41.49,56.84,43.88" />
<path
android:fillColor="#141412"
android:pathData="M24.38,32.2c0,0.97,0.53,1.76,1.16,1.75c0.64,0,1.15-0.79,1.14-1.77c0-0.97-0.53-1.75-1.16-1.75 C24.89,30.44,24.37,31.23,24.38,32.2z" />
<path
android:fillColor="#141412"
android:pathData="M17.59,32.23c0,0.97,0.53,1.76,1.16,1.75c0.64,0,1.15-0.79,1.15-1.77c0-0.97-0.53-1.75-1.16-1.75 C18.1,30.47,17.59,31.26,17.59,32.23z" />
<path
android:fillColor="#141412"
android:pathData="M17.88,35.89c0.01,2.3,1.88,4.15,4.17,4.13c2.29-0.01,4.15-1.88,4.13-4.18" />
<path
android:fillColor="#D38690"
android:fillType="evenOdd"
android:pathData="M22.61,1.28c0.61-0.69,1.27-1.36,2.61-1.26c1.32,0.09,2.12,0.97,2.44,1.94 c0.41,1.25-0.12,2.55-0.74,3.34c-1.26,1.59-3.27,2.66-4.27,4.49c-0.54-0.68-1.07-1.39-1.74-2.01c-0.63-0.58-1.34-1.13-1.98-1.77 c-0.61-0.6-1.19-1.35-1.39-2.35c-0.23-1.17,0.11-2.21,0.74-2.84c0.4-0.4,0.98-0.75,1.72-0.81C21.33-0.1,22.05,0.55,22.61,1.28z" />
</vector>
Run Code Online (Sandbox Code Playgroud) 我想在触摸时调整ImageView的大小.这将是完美的调整大小,就像你在谷歌地图或移动浏览器中进行放大,但如果只是触摸它我可以调整大小就足够了.那可能吗?
当一个Activity调用另一个Activity时,我想将一个类对象从一个Activity传递给另一个.我试图用Intent.putExtra(name, value)它制作,但后来我没有Intent.getExtra(name)方法.有许多类似的方法getStringExtra(name),getDataExtra(name)依此类推,但我在其中放入的值putExtra是一个类对象,它具有很多不同的值,如String,Data和int.如何通过该课程?
我正在尝试使用WebClient,但它给了我错误,所以我检查了几个论坛(包括这个)和他们在哪里告诉放
在文件的顶部:
using System.Net
Run Code Online (Sandbox Code Playgroud)
在我想要使用WebClient之后:
WebClient webClient = new WebClient();
webClient.DownloadFile ("http://mysite.com/myfile.txt", @"c:\myfile.txt");
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
找不到类型或命名空间名称'WebClient'(您是否缺少using指令或程序集引用?)
在其他论坛中,我刚才写的代码似乎是解决方案但不适合我.
我正在尝试在 kotlin 中使用 mockito。我创建了以下测试:
class HeroesDataSourceTest {
@Mock
lateinit var heroesRepository: HeroesRepository
@Mock
lateinit var params: PageKeyedDataSource.LoadInitialParams<Int>
@Mock
lateinit var callback: PageKeyedDataSource.LoadInitialCallback<Int, Heroes.Hero>
val hero = Heroes.Hero(1, "superman", "holasuperman", 1, null, null)
val results = Arrays.asList(hero)
val data = Heroes.Data(results)
val dataResult = Heroes.DataResult(data)
val compositeDisposable = CompositeDisposable()
lateinit var heroesDataSource: HeroesDataSource
private val heroesPublishSubject = PublishSubject.create<Heroes.DataResult>()
@Before
fun initTest(){
MockitoAnnotations.initMocks(this)
}
@Test
fun testLoadInitialSuccess(){
`when`(heroesRepository.getHeroes(ArgumentMatchers.anyInt())).thenReturn(heroesPublishSubject.singleOrError())
heroesDataSource = HeroesDataSource(heroesRepository, compositeDisposable)
val testObserver = TestObserver<Heroes.DataResult>()
heroesDataSource.loadInitial(params, callback)
heroesPublishSubject.onNext(dataResult)
testObserver.assertComplete()
}
} …Run Code Online (Sandbox Code Playgroud) 我试图获取音频文件的持续时间.为此,我使用以下代码:
$.fntReproducir=function(){
//obtenemos una instancia del elemento que contiene la info. de cancion a reproducir
var $objContenedorCancion=$('#olCanciones').children().eq(iCancionActual);
//obtenemos la ruta del archivo que se va a reproducir y se lo asignamos
//al source del audio player de HTML5
objReproductor = new Media($objContenedorCancion.attr('rel'), stopAudio, null);
//var timerDur = setInterval(GetCurrPosition, 1000);
//desmarcamos cualquier cancion en la lista (si es que estuviese marcada alguna)
$('#olCanciones li').removeClass('clsSeleccionado');
//marcamos en la lista la cancion que vamos a reproducir
$objContenedorCancion.addClass('clsSeleccionado');
meState = myMediaState.play
//reproducir la cancion …Run Code Online (Sandbox Code Playgroud) 我收到标题中出现的错误,并且我已经检查了安全设置,启用了所有功能,并且加载项已签名。我将屏幕截图显示了如何选择。如果我启用了所有功能,为什么它会带来安全问题?


我正在使用Windows 8和Office365。不起作用的加载项是PowerPoint加载项。我也尝试了一些出现在此线程中的解决方案,但没有一个对我有用:http : //social.technet.microsoft.com/Forums/office/en-US/0b385af0-9856-4cfb-bc48-3369c3ce2ace/when-opening由于您的宏安全性而无法找到或发现宏字无法正确显示的问题?forum = officeitprevious
我正在尝试将本地化添加到我的网站.我安装i18n,用西班牙语和英语创建2个本地化json文件,然后在app.js文件中添加配置.app.js文件是这样的:
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var i18n = require("i18n");
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var request = require('request');
var flash = require('express-flash');
var winston = require('winston');
winston.add(winston.transports.File, { name: 'app-info', maxFiles: 3, filename: 'logs/app-info.log', level: 'info' });
winston.add(winston.transports.File, { name: 'app-error', maxFiles: 3, filename: 'logs/app-error.log', level: 'error' });
require('dotenv').config();
var app_port = process.env.APP_PORT;
var fs = require('fs'); …Run Code Online (Sandbox Code Playgroud) 在尝试进行单元测试时,我无法让 liveData.postValue 工作。我一直在谷歌检查解决方案,这是我现在的代码。
public class ProjectListViewModelTest {
GetProjectList getProjectList = Mockito.mock(GetProjectList.class);
ProjectModel.Project project = new ProjectModel.Project("testing",
"this is a test",
"https://logo.jpg",
new ProjectModel.Company("cat"),
"20150404",
"active");
List<ProjectModel.Project> projects = Arrays.asList(project);
ProjectModel.ProjectList projectsList = new ProjectModel.ProjectList(projects);
ProjectsListViewModel projectsListViewModel;
private PublishSubject<ProjectModel.ProjectList> projectsListPublishSubject = PublishSubject.create();
@Rule public InstantTaskExecutorRule instantExecutorRule = new InstantTaskExecutorRule();
@BeforeClass
public static void setUpRxSchedulers() {
Scheduler immediate = new Scheduler() {
@Override
public Disposable scheduleDirect(@NonNull Runnable run, long delay, @NonNull TimeUnit unit) {
return super.scheduleDirect(run, 0, unit);
}
@Override
public Scheduler.Worker …Run Code Online (Sandbox Code Playgroud) android ×5
kotlin ×2
add-in ×1
c# ×1
cordova ×1
junit ×1
kodein ×1
mockito ×1
mvvm ×1
node.js ×1
powerpoint ×1
sonarqube ×1
unit-testing ×1
viewmodel ×1
windows-8.1 ×1