小编Aar*_*ver的帖子

使用SupportMapFragment时,如何知道地图已准备就绪?

onCreate方法中,我正在利用它SupportMapFragment来显示地图.

    SupportMapFragment fragment = new SupportMapFragment();
    getSupportFragmentManager().beginTransaction()
            .add(android.R.id.content, fragment).commit();
Run Code Online (Sandbox Code Playgroud)

与此相关,我想添加一个标记.问题是当调用getMap为null时,我什么时候可以再试一次?是否有我可以注册的事件或我的方法本身是错的?

    mMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();
    if(mMap == null)
        //what do I do here?
Run Code Online (Sandbox Code Playgroud)

事实上,地图显示在手机上,但我似乎没有运气获得添加标记的参考.

更新:

SupportMapFragment通过构造函数创建的原因是因为典型的setContentView崩溃并且无法正常工作.这让我处于困境,在那里我无法获得我在onCreate方法中的参考,因为我当时正在创建SupportMapFragment它.在进一步调查中,似乎我的setContentView问题是没有将Google-play-services jar和module/src设置为整个项目的一部分的副产品.完成这些后,setContentView现在可以工作,我可以getMap()像我期望的那样获得参考.

lots.xml ...

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/map"
          android:name="com.google.android.gms.maps.SupportMapFragment"
          android:layout_width="match_parent"
          android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

LotsActivity.java ...

public class LotsActivity extends FragmentActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lots);

        GoogleMap mMap;
        mMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();
        if(mMap == null) …
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-android-api-2

29
推荐指数
4
解决办法
3万
查看次数

DependencyObject.InvalidateProperty无法正常工作

基于MSDN 的文档 ......

您还可以使用InvalidateProperty强制重新评估针对无法实现建议的INotifyPropertyChanged通知机制的数据源的绑定...

......下面的代码应该可行,但事实并非如此.

public partial class Window1 : Window
{
    private Payload _payload = new Payload();

    public Window1()
    {
        InitializeComponent();

        this.DataContext = _payload;
    }

    private void Invalidate(object sender, RoutedEventArgs e)
    {
        _payload.Timestamp = DateTime.Now.Add(TimeSpan.FromHours(1)).ToLongTimeString();

        Button b = sender as Button;
        b.InvalidateProperty(Button.ContentProperty);
    }
}

public class Payload
{
    private String _payload = DateTime.Now.ToLongTimeString();
    public String Timestamp 
    {
        get
        {
            return _payload;
        }
        set
        {
            _payload = value;
        }
   }
}

<Grid>
    <Button Click="Invalidate"
            Width="100" 
            Height="50" 
            Content="{Binding Path=Timestamp}"/>
</Grid> …
Run Code Online (Sandbox Code Playgroud)

c# wpf binding

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

iframe中的表单无法通过Angular和IE11重新获得焦点

我有一个Angular应用程序,其中包含一个包含iframe的路径.iframe加载表单.在第一次加载路径时,您可以在表单中输入数据.在路径的第二次加载时,表单输入无法重新关注IE11中的单击.适用于Chrome和Firefox.

重新创建的具体步骤如下:

  1. 在IE11中加载页面
  2. 点击iframe链接
  3. 可以将数据输入表单输入
  4. 当光标仍在表单输入中时,单击Iframe链接
  5. 该路线将重新加载,清除表格
  6. 单击表单输入以输入新文本时,表单无法重新获得焦点

我注意到,如果您在输入文本后单击"主页"链接,则单击iframe链接,表单可以重新获得焦点,从而允许输入新文本.

下面是重新创建问题的示例代码.你可以在这里看到它:http://matthewriley.github.io/iframe-form/.

请注意,控制器根据标志强制重新加载路径.这是为了支持业务要求,即如果用户在iframe中并选择单击iframe链接,则路由将完全重新加载.

是什么原因导致IE11阻止iframe中的表单重新关注第二次加载?

HTML页面

<!DOCTYPE html>
<html lang="en-US">
    <head>
        <meta charset="utf-8" />
        <title>Iframe Reload Test</title>
    </head>
    <body>
        <div ng-app="IframeTest">
            <p><span><a href="#/">Home</a></span>&nbsp;<span><a href="#/iframe">Iframe</a></span></p>
            <div ui-view></div>
        </div>
        <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular.min.js"></script>
        <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.min.js"></script>
        <script src="app.js"></script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

角度应用程序

// app.routes.js
(function() {
    'use strict';
    angular
        .module('IframeTest', [
            'ui.router',
            'IframeTest.iFrameModule'
        ])
        .config(routeConfig);
    routeConfig.$inject = ['$stateProvider', '$urlRouterProvider'];
    function routeConfig($stateProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise("/");
        $stateProvider
            .state('home', {
                url:'/',
                template: '<h4>Home</h4><p>This is the home page.</p>'
            }) …
Run Code Online (Sandbox Code Playgroud)

javascript iframe internet-explorer angularjs angularjs-directive

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

用equals定义Ruby中的方法

作为Ruby的新手,我无法向自己解释 Ruby中方法定义的行为.

下面举例说明......

class Foo
  def do_something(action)
    action.inspect
  end
  def do_something_else=action 
    action.inspect
  end
end

?> f.do_something("drive")
=> "\"drive\""

?> f.do_something_else=("drive")
=> "drive"
Run Code Online (Sandbox Code Playgroud)

第一个例子是自我解释的.我试图理解的是第二个例子的行为.除了看起来是一个产生字符串文字,而另一个不是,实际发生了什么?为什么我会使用一个而不是另一个?

ruby syntax

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

递归HTTP调用在IDE与已部署的可执行文件中表现出不同的行为

代码正在对SVN树的公开表示进行HTTP调用.然后解析HTML并添加文件以供稍后参考,以便下拉并推送给用户.这是在WPF应用程序中完成的.下面是代码以及显示目录结构的图像.

    private readonly String _baseScriptURL = @"https://xxxxxxxxxx/svn/repos/xxxxxxxxxx/trunk/scripts/vbs/web/";

    private void FindScripts(String url, ref ICollection<String> files)
    {
        //MyFauxMethod();
        StringBuilder output = new StringBuilder();

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Credentials = new Credentials().GetCredentialCache(url);

        _logger.Log("Initiating request [" + url + "]", EventType.Debug);

        try
        {
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            using (Stream stream = response.GetResponseStream())
            {
                _logger.Log("Response received for request [" + url + "]", EventType.Debug);

                int count = 0;
                byte[] buffer = new byte[256];
                while ((count = stream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    if (count …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf recursion http

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

何处在.NET应用程序中保存应用程序数据

我的应用程序类似于联系人管理器.假设用户可以输入其地址的联系人.我有将代码和技术保存到文件的代码和技术.但是我在哪里保存该文件?

考虑到这是在Windows上运行的.NET应用程序.我的文件应该在users文件夹的AppData中吗?我应该使用独立存储(如提到这里)?别的什么?建议的做法是什么?

.net persistence isolatedstorage application-data

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

如何使用android中的tagsoup解析xml中的html内容

任何人都可以告诉我如何使用Android中的TagSoup将HTML内容解析为XML?如果可能的话,我正在寻找功能代码示例.

html xml xhtml parsing android

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

在整个应用程序中捕获按键

有可能,捕获(我想在app.xaml.cs的某个地方)任何键,如果按下打开的窗口?

感谢帮助!

c# wpf keypress

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

为什么我的标题在我的ActionBar中使用不垂直居中的自定义字体?

在尝试修改我的ActionBar标题字体时,我找到了一个答案,建议调整Typeface通过a SpannableString.虽然它的工作原理如答案中所述,但放置似乎偏离垂直居中.

标题的屏幕截图不是垂直居中

我尝试过两种不同的字体,包括OpenType(Roundhand)和TrueType(Billabong).此外,我在一台较旧的Gingerbread设备(屏幕截图来自)上运行2.3.3以及通过运行4.2的较新的Jelly Bean设备试用了这个.该项目使用ActionBarSherlock,因此是我最后的理论罪魁祸首.我也调整了字体大小,希望它略微居中,但要知道这只不过是一个黑客,并没有解决手头的最终问题.

有了这个,为什么我的标题没有适当集中,我该如何纠正呢?如果有一种方法来调整上面引用的实现解决方案的对齐,那肯定就足够了,即使ActionBarSherlock是罪魁祸首.然而,知道罪魁祸首是什么以及为什么会发生这种情况是答案的一部分,而不仅仅是提供一种解决方法.

更新:

下面的屏幕截图使用了Show layout bounds.请注意,为了使用Show布局边界,该设备显然正在运行Jelly Bean,而之前的截图来自Gingerbread设备.在任何一种情况下,问题都是一样的.

在此输入图像描述

更新:

如果我Typeface.DEFAULT在调用setSpan边界时使用,并且对齐方式应该出现.

在此输入图像描述

更新:

在尝试第三种字体时,问题似乎与字体有关.

在此输入图像描述

fonts android actionbarsherlock

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

通过Eclipse编辑Android XML布局中的多个元素

我正在尝试在xml布局中编辑多个textview.在安装Juno之前,我按下shift按钮选择了多个元素,所有属性都显示在Properties视图中,因此我可以进行批量编辑.现在我所有的物业视图; ID,文本,提示,文本颜色,文本外观,文本大小,内容 在这种特殊情况下,我想将所有重力从无变化到右边.我想我的日食偏好或错过了其他的东西我做错了.需要帮助thx

eclipse android properties

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