在iOS中,我非常喜欢删除故事板并使用制图框架将所有内容放在代码中.这是从Cartography的github中偷来的:
constrain(view1, view2) { view1, view2 in
view1.width == (view1.superview!.width - 50) * 0.5
view2.width == view1.width - 50
view1.height == 40
view2.height == view1.height
view1.centerX == view1.superview!.centerX
view2.centerX == view1.centerX
view1.top >= view1.superview!.top + 20
view2.top == view1.bottom + 20
}
Run Code Online (Sandbox Code Playgroud)
Android有什么相同的功能吗?似乎新的Constraint Layout是朝着正确方向迈出的一步,但我想以编程方式进行.
我正在尝试检查com.android.music是否正在运行,我在这一行上收到以下错误 this.getSystemService(Context.ACTIVITY_SERVICE);
错误:
对于Listen类型,方法getSystemService(String)是未定义的
码:
public boolean isMusicRunning() {
ActivityManager activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
for (int i = 0; i < procInfos.size(); i++) {
if (procInfos.get(i).processName.equals("com.android.music")) {
Toast.makeText(null, "music is running",
Toast.LENGTH_LONG).show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你能让我知道我在这里做错了什么就会很棒!
我有以下Android Java和XML代码.我想更改我的应用程序的菜单项的字体.我只知道我们可以使用setTypeface更改TextView的字体,但无论如何都无法找到菜单项.
JAVA代码 - :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_refresh1:
Toast.makeText(this, "Item1 Selected", Toast.LENGTH_SHORT)
.show();
break;
case R.id.action_refresh2:
Toast.makeText(this, "Item2 Selected", Toast.LENGTH_SHORT)
.show();
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
XML代码 - :
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_refresh1"
android:orderInCategory="100"
android:showAsAction="always"
android:title="Item1"/>
<item
android:id="@+id/action_refresh2"
android:orderInCategory="100"
android:showAsAction="always"
android:title="Item2"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
我想更改两个菜单项的字体,但不知道如何为菜单项集成settypface.
每次调用时Configuration.GetSection,Value返回对象的属性始终为null.
我的Startup构造函数
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables();
this.Configuration = builder.Build();
}
Run Code Online (Sandbox Code Playgroud)
我的ConfigureServices方法
public void ConfigureServices(IServiceCollection services)
{
services.Configure<SqliteSettings>(opts => Configuration.GetSection("SqliteSettings").Bind(opts));
services.AddOptions();
services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud)
我的 appsettings.json
{
"SqliteSettings": {
"DataSource": "C:\\db.sqlite",
"NewDatabase": true,
"Version": 3
}
}
Run Code Online (Sandbox Code Playgroud)
我用来定义SqliteSettings的类
public class SqliteSettings
{
public string DataSource { get; set; }
public bool? NewDatabase { get; set; }
public int? Version { get; set; …Run Code Online (Sandbox Code Playgroud) 我正在尝试将带有版本控制系统的eclipse项目导入Android Studio.
在Android-Studio版本"0.5.5"中添加了对直接eclipse项目导入的支持,我们不需要首先从eclipse导出项目将其导入Android-Studio.
我有一个eclipse Android项目,我试图导入Android Studio.导入成功但导入的项目不再具有版本控制.
编辑: - 更多细节
假设我有以下目录结构
Project ----
|---------- .git/
|----------- MyApp
|------------MyApp_imported
Run Code Online (Sandbox Code Playgroud)
在项目导入期间,我将Android Studio指向项目目录"MyApp",它将项目"MyApp"中的所有文件复制到新目录"MyApp_Imported".但导入的项目没有启用版本控制.现在我不确定如何继续前进.如何告诉Android Studio将旧存储库用于导入的项目.一步一步指导这样做将非常有帮助.
以下是Android工具项目网站的文字
项目 - 导入模块现在应该正常工作.您可以将现有的Eclipse ADT项目以及Gradle模块导入到现有的Gradle项目中; 它将在源代码中复制,如完整项目导入所做的那样,以及可传递地处理依赖项.从项目结构对话框或文件|导入模块 导入模块操作. - 新的项目结构对话框实现:应该更快,包括Gradle同步通知,应该只在必要时执行Gradle同步,并且不会像以前那样列出无效的IntelliJ模块警告.
这是积极的工作,个人编辑(口味,构建类型,签名配置等)将在即将到来的版本中得到改进.
我在一些用户的手机(例如摩托罗拉Razr i)上得到"nosuchmethod错误",但它在我的HTC上工作正常.下面是代码.
Drawable rBlack;
rBlack = getResources().getDrawable(R.drawable.rblack, getTheme());
Run Code Online (Sandbox Code Playgroud)
如果我使用此代码:
java.lang.NoSuchMethodError: android.content.res.Resources.getDrawable
at org.petero.droidfish.myClass.onCreate(myClass.java:434)
at android.app.Activity.performCreate(Activity.java:5248)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2173)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2269)
at android.app.ActivityThread.access$800(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5102)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:803)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:619)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
flipButton.setImageDrawable(getDrawable(R.drawable.rblack));
Run Code Online (Sandbox Code Playgroud) 我想保存布尔值,然后在if-else块中进行比较.
我目前的逻辑是:
boolean locked = true;
if (locked == true) {
/* SETBoolean TO FALSE */
} else {
Intent newActivity4 = new Intent(parent.getContext(), Tag1.class);
startActivity(newActivity4);
}
Run Code Online (Sandbox Code Playgroud)
如何保存已设置为false的布尔变量?
当我将工具栏应用到我的应用程序中时,我遇到了这个问题,当我尝试运行app时它崩溃了.我使用了之前的所有帖子但没有运气.这是我的代码:
Style.xml
<style name="ToolBarStyle" parent="@style/Theme.AppCompat.Light">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我试过parent ="@ style/Theme.AppCompat.Light.NoActionBar"但没有用.
Toolbar.xmal
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ToolBarStyle" />
Run Code Online (Sandbox Code Playgroud)
Manifest.axml
<application android:label="Capzure" android:theme="@style/ToolBarStyle" android:icon="@drawable/Icon"></application>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我试图在ASP.NET核心应用程序(.NET框架)中实现SeriLog
以下是我目前执行的步骤 -
1)在Project.json中添加了以下引用
"Serilog": "2.2.0",
"Serilog.Extensions.Logging": "1.2.0",
"Serilog.Sinks.RollingFile": "2.0.0",
"Serilog.Sinks.File": "3.0.0"
Run Code Online (Sandbox Code Playgroud)
2)在Startup类的构造函数中添加以下行 -
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.RollingFile(Path.Combine(env.ContentRootPath, "log-{Date}.txt"))
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
3)在Startup类的configure方法中添加以下行 -
loggerFactory.AddSerilog();
Run Code Online (Sandbox Code Playgroud)
4)将记录器注入HomeController,如下所示 -
ILogger logger;
public HomeController(ILogger logger)
{
this.logger = logger;
}
Run Code Online (Sandbox Code Playgroud)
5)在About操作中,尝试记录此类异常 -
public IActionResult About()
{
ViewData["Message"] = "Your application description page.";
try
{
throw new Exception("Serilog Testing");
}
catch (System.Exception ex)
{
this.logger.Error(ex.Message);
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
在运行我的应用程序时,我收到以下错误 -
System.InvalidOperationException:尝试激活'AspNetCore_SeriLog_trial1.Controllers.HomeController'时,无法解析类型'Serilog.ILogger'的服务.在Microsoft.AspNetCore.Mvc.Internal.TypeActivatorCache.CreateInstance
[TInstance]的lambda_method(Closure,IServiceProvider,Object [])上的Microsoft.Extensions.Internal.ActivatorUtilities.GetService(IServiceProvider sp,Type type,Type requiredBy,Boolean isDefaultParameterRequired)IServiceProvider serviceProvider,Type implementationType),位于Microsoft.AspNetCore.Mvc.Inv.Inter.ControllerActionInvoker.d__26的Microsoft.AspNetCore.Mvc.Controllers.DefaultControllerFactory.CreateController(ControllerContext context)中的Microsoft.AspNetCore.Mvc.Controllers.DefaultControllerActivator.Create(ControllerContext controllerContext). .MoveNext()
有人可以帮我这个吗?Serilog缺少任何配置?
我想知道如何将此SQL查询转换为实体框架查询.
SELECT *
FROM Post
WHERE PostId IN (
SELECT PostId FROM BlogPost
WHERE BlogId = &blogId);
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取具有给定类别ID的帖子列表.
数据库简化:
博客(帖子的类别):
BlogId
Title
..
Run Code Online (Sandbox Code Playgroud)
帖子:
PostId
Title
..
Run Code Online (Sandbox Code Playgroud)
BlogPost用于组合这两个表,并让每个帖子有多个类别:
PostId
BlogId
Run Code Online (Sandbox Code Playgroud)
这是我已经拥有的,但当然查询不起作用:
public async Task<IActionResult> Category(int? id)
{
int blogId = id;
if (blogId == null)
{
return NotFound();
}
ICollection<Post> posts = await _context.Post.Where(pid => pid.PostId.Contains(_context.BlogPost.Where(i => i.PostId == blogId).ToListAsync())).ToListAsync();
if (posts == null)
{
return NotFound();
}
return View(posts );
}
Run Code Online (Sandbox Code Playgroud)
先感谢您.