问题列表 - 第23041页

在活动开始期间优雅地处理屏幕方向变化

我正在尝试找到一种方法来正确处理设置活动,其中的方向取决于启动它的意图中的数据.这适用于用户可以选择级别的游戏,其中一些是纵向方向,一些是横向方向.我面临的问题是,setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)在活动完全加载之前不会生效.这对我来说是一个问题,因为我在启动期间进行了一些加载和图像处理,我只想做一次.

目前,如果用户选择了景观级别:

  • 活动开始于onCate(),默认为肖像
  • 通过分析它的发布意图发现它应该是横向的
  • 无论如何继续onResume(),加载信息和执行其他设置任务
  • 此时setRequestedOrientation启动,因此应用程序通过onPause()运行到onDestroy()
  • 然后它再次从onCreate()启动并运行到onResume()重复之前的设置

有没有办法避免这种情况,并且没有执行两次加载?例如,理想情况下,即使onCreate被调用,活动也会知道它是应该是横向还是纵向,这取决于启动意图的某些属性,但除非我错过了一些不可能的东西.我已经设法通过boolean在耗时的加载步骤之前检查a来避免重复加载的方法,但这似乎不是正确的方法.我想我可以覆盖onSaveInstanceState,但这需要大量额外的编码.有一个简单的方法吗?

谢谢!


解:

根据丹尼尔的回答,这实际上很容易解决.我只需做一些小改动.在我的"菜单"活动中,玩家将选择要播放的等级,我只需添加一个if/else检查来选择我的Intent将启动哪个类.这是通过一个表示肖像或风景的简单int完成的,当玩家选择一个关卡时确定.然后我创建了第二个扩展我的'GameLogic'类的类; 这是包含游戏本身大部分代码的类,而不是菜单,说明等.

public class GameLandscape extends GameLogic{
}
Run Code Online (Sandbox Code Playgroud)

字面上那简单而完全空洞.这样,它继承了我以前的活动中的所有代码,我已经将其编码为根据方向不同地处理事物.最后,我只需要在清单中添加一行,说明GameLandscape将始终在横向上运行,GameLogic将始终以纵向运行.

确实是一个简单的问题.

layout android screen-orientation

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

如何处理未知的实体引用?

我正在解析(很多)包含实体引用的XML文件,我事先并不知道(不能改变这个事实).

例如:

xml = "<tag>I'm content with &funny; &entity; &references;.</tag>"
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下代码解析它:

final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
final DocumentBuilder db = dbf.newDocumentBuilder();
final InputSource is = new InputSource(new StringReader(xml));
final Document d = db.parse(is);
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

org.xml.sax.SAXParseException: The entity "funny" was referenced, but not declared.
Run Code Online (Sandbox Code Playgroud)

但是,我想要实现的是,解析器用空字符串''替换未声明的每个实体(解析器未知).或者甚至更好,有没有办法将地图传递给解析器,如:

Map<String,String> entityMapping = ...
entityMapping.put("funny","very");
entityMapping.put("entity","important");
entityMapping.put("references","stuff");
Run Code Online (Sandbox Code Playgroud)

这样我就可以做到以下几点:

final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
final DocumentBuilder db = dbf.newDocumentBuilder();
final InputSource is = new InputSource(new StringReader(xml));

db.setEntityResolver(entityMapping);
final Document d = db.parse(is);
Run Code Online (Sandbox Code Playgroud)

如果我使用这个示例代码从文档中获取文本,我应该收到:

I'm content with very …
Run Code Online (Sandbox Code Playgroud)

java xml parsing

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

Unity BuildUp方法的问题

我正在为我的项目使用Unity App Block(版本1.2.0.0).我有一个Unity容器BuildUp方法的问题,我正在使用我的ascx控件.这是一些代码(非常简单)

public class BaseUserControl<T>:UserControl where T:class
    {
 protected override void OnInit(EventArgs e)
        {
            InjectDependencies();
            base.OnInit(e);
        }

 protected virtual void InjectDependencies()
            {
         var context = HttpContext.Current;
                if (context == null)
                {
                    return;
                }
                var accessor = context.ApplicationInstance as IContainerAccessor;
                if (accessor == null)
                {
                    return;
                }
                var container = accessor.Container;
                if (container == null)
                {
                    throw new InvalidOperationException("No Unity container found");
                }
                container.BuildUp<T>(this as T);

      }
}
Run Code Online (Sandbox Code Playgroud)

在我的解决方案中,在ascx控件的基本控件中调用此方法.这里应该注入儿童控制的属性:

 [Dependency]
  private IStock Stock { get; set; }
Run Code Online (Sandbox Code Playgroud)

因此,在建立股票房产后仍然是空的.Resolve方法适用于具有相同容器和配置的IStock.我尝试使用只有一个属性IStock的简单测试类进行构建并获得相同的结果.那么积累会有什么问题呢?

.net unity-container

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

如何在 vim 中为不同类型的缓冲区映射不同的键

我面临的问题是我已经映射了一些键和鼠标事件,以便在编辑文件时在 vim 中进行搜索。但是如果quickfix 缓冲区,这些映射会影响功能。

我想知道是否可以根据使用它们的缓冲区来映射键。

EDIT- 我正在为这个问题添加更多信息让我们考虑一个场景。我想映射<C-F4>以关闭缓冲区/窗口。现在这种行为可能取决于很多事情。

如果我正在编辑缓冲区,它应该关闭该缓冲区而不更改窗口的布局。我正在为此使用buffkil插件。

它不取决于文件的扩展名,而是取决于缓冲区的类型。我在 vim 文档中看到有未列出和列出的缓冲区。所以如果它被列出缓冲区,它应该使用 bufkill 命令关闭。

如果它不是列出的缓冲区,则应使用<c-w>c命令关闭缓冲区并更改窗口布局。

我是编写 vim 函数/脚本的新手,有人能帮我开始这个吗

vim

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

单选按钮与html.radiobutton ASP.NET MVC

我是所有这些ASP.NET MVC的新手,我正在为我的项目做一些测试.我想问一下如何从html.radiobutton函数引入一个javascript函数调用.例如,您如何声明:

<input type="radio" name = "Kingdom" value = "All" onclick="GetSelectedItem(this);" checked ="checked" />

用html.radiobutton.我一直在寻找一些文档,但我真的不明白,我想这与html对象属性有关,但我不知道语法,我没有找到任何例子.

提前谢谢大家:) vikitor

html asp.net-mvc

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

django项目部署到实时(临时)站点有多痛苦?

我的一个小型django项目得到了很快,当然我正在本地开发.但是,由于我以前从未使用过django,我不知道上传它并在生产服务器上测试它意味着什么.而且我很好奇,因为我非常渴望测试早期发布.

我知道有这个文件,我觉得它真的很有帮助:http://djangobook.com/en/2.0/chapter12/

但是,在部署之前,期间和之后我是否应该考虑任何细节?有什么建议或最佳实践吗?

谢谢.

django web-deployment

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

MySQL只返回一个结果.我很困惑

这是te代码:

<?php

//Starting session

session_start();

//Includes mass includes containing all the files needed to execute the full script
//Also shows homepage elements without customs

require_once ('includes/mass.php');

$username = $_SESSION['username'];

if (isset($username))

{   

//Query database for the users networths

$sq_l = "SELECT * FROM user";

$sql_query_worth = mysql_query($sq_l);

while ($row = mysql_fetch_assoc($sql_query_worth))

      {

         $dbusername = $row['username'];


      } 

      echo $dbusername;

}
?>
Run Code Online (Sandbox Code Playgroud)

php mysql

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

用Java运行bat文件并等待

你会认为从Java启动一个bat文件是一件容易的事,但是没有...我有一个bat文件,它为一个从文本文件中读取的值循环执行一些sql命令.它或多或少是这样的:

FOR /F %%x in (%CD%\listOfThings.txt) do sqlcmd -Slocalhost\MSSQL %1 %2 -d %3 -i %CD%\SQLScripts\\%%x
exit
Run Code Online (Sandbox Code Playgroud)

不要担心它们不重要的细节.我想要的是简单地从Java中运行这个bat文件,让它等到执行完成.显然这并不容易.到目前为止我所拥有的是:

Runtime.getRuntime().exec("cmd /K start SQLScriptsToRun.bat"
                    +" -U"+getUser()
                    +" -P"+getPass()
                    +" " + projectName);
return true;
Run Code Online (Sandbox Code Playgroud)

问题是exec()方法立即返回.bat文件运行2-3分钟.我尝试删除开始但无济于事.我尝试了很多变化,但它让我无处可去.关于如何完成这个简单任务的任何想法?

java batch-file exec

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

大文件复制期间的进度(Copy-Item&Write-Progress?)

有没有办法在PowerShell中复制一个非常大的文件(从一个服务器到另一个服务器)并显示其进度?

有一些解决方案可以将Write-Progress与循环结合使用来复制许多文件并显示进度.但是,我似乎无法找到任何可以显示单个文件进度的内容.

有什么想法吗?

powershell progress copy-item copying progress-bar

56
推荐指数
6
解决办法
10万
查看次数

如何解密用HMACSHA1加密的字符串?

我是一个加密新手,试图在系统之间来回传递一些值.我可以加密该值,但似乎无法弄清楚如何在另一端解密.我使用VB.NET创建了一个简单的Windows窗体应用程序.尝试输入值和密钥,加密然后解密以获取原始值.到目前为止,这是我的代码.任何帮助非常感谢.谢谢.

Imports System
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text

Public Class Form1

    Private Sub btnEncode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncode.Click
        Dim hmacsha1 As New HMACSHA1(Encoding.ASCII.GetBytes(txtKey.Text))
        Dim hashValue As Byte() = hmacsha1.ComputeHash(Encoding.ASCII.GetBytes(txtValue.Text))
        txtResult.Text = BytesToHexString(hashValue)
        hmacsha1.Clear()
    End Sub

    Private Sub btnDecode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecode.Click
        '???
    End Sub

    Private Function BytesToHexString(ByVal bytes As Byte()) As String
        Dim output As String = String.Empty
        Dim i As Integer = 0
        Do While i < …
Run Code Online (Sandbox Code Playgroud)

.net cryptography sha1 hmac cryptographic-hash-function

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