小编JJD*_*JJD的帖子

在Android上旋转活动重启

在我的Android应用程序中,当我旋转设备(滑出键盘)然后我Activity重新启动(onCreate被调用).现在,这可能是它应该如何,但我在onCreate方法中做了很多初始设置,所以我需要:

  1. 将所有初始设置放在另一个功能中,这样就不会在设备旋转时丢失所有功能
  2. 这样做onCreate不会再次调用,布局只是调整或
  3. 将应用限制为仅限肖像,以便onCreate不调用.

android rotation android-activity

1341
推荐指数
25
解决办法
37万
查看次数

如何樱桃挑选多个提交

我有两个分支.提交a是一个头,而其他有b,c,d,ef之上a.我想移动c,d,ef第一支没有提交b.使用樱桃挑选很容易:结帐第一个分支樱桃 - 一个接一个c地挑选f第二个分支到第一个.但有没有办法挑选所有c- f一个命令?

这是场景的直观描述(感谢JJD):

在此输入图像描述

git git-rebase cherry-pick

779
推荐指数
11
解决办法
39万
查看次数

如何使用Jackson对一系列对象进行反序列化

杰克逊的数据绑定的文档表明,杰克逊支持deserialising"所有支持类型的数组",但我想不通这个确切的语法.

对于单个对象,我会这样做:

//json input
{
    "id" : "junk",
    "stuff" : "things"
}

//Java
MyClass instance = objectMapper.readValue(json, MyClass.class);
Run Code Online (Sandbox Code Playgroud)

现在对于一个数组我想这样做:

//json input
[{
    "id" : "junk",
    "stuff" : "things"
},
{
    "id" : "spam",
    "stuff" : "eggs"
}]

//Java
List<MyClass> entries = ?
Run Code Online (Sandbox Code Playgroud)

有人知道是否有一个神奇的缺失命令?如果没有那么解决方案是什么?

java json jackson

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

杰克逊与JSON:未被识别的领域,没有标记为可忽略

我需要将某个JSON字符串转换为Java对象.我正在使用Jackson进行JSON处理.我无法控制输入JSON(我从Web服务中读取).这是我的输入JSON:

{"wrapper":[{"id":"13","name":"Fred"}]}
Run Code Online (Sandbox Code Playgroud)

这是一个简化的用例:

private void tryReading() {
    String jsonStr = "{\"wrapper\"\:[{\"id\":\"13\",\"name\":\"Fred\"}]}";
    ObjectMapper mapper = new ObjectMapper();  
    Wrapper wrapper = null;
    try {
        wrapper = mapper.readValue(jsonStr , Wrapper.class);
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("wrapper = " + wrapper);
}
Run Code Online (Sandbox Code Playgroud)

我的实体类是:

public Class Student { 
    private String name;
    private String id;
    //getters & setters for name & id here
}
Run Code Online (Sandbox Code Playgroud)

My Wrapper类基本上是一个容器对象,用于获取我的学生列表:

public Class Wrapper {
    private List<Student> students;
    //getters & setters here
}
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误,"包装"返回null.我不确定缺少什么.有人可以帮忙吗?

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: 
    Unrecognized field …
Run Code Online (Sandbox Code Playgroud)

java data-binding json jackson

602
推荐指数
30
解决办法
69万
查看次数

在request.GET中捕获url参数

我正在定义正则表达式以捕获url中的参数,如教程中所述.如何从URL中访问参数作为HttpRequest对象的一部分?我HttpRequest.GET当前返回一个空QueryDict对象.

我想学习如何在没有库的情况下这样做,这样我就能更好地了解Django.

django rest url

414
推荐指数
15
解决办法
48万
查看次数

如何在Ruby on Rails ActiveRecord迁移中处理太长的索引名称?

我试图添加一个从四个相关表的外键创建的唯一索引:

add_index :studies,
  ["user_id", "university_id", "subject_name_id", "subject_type_id"],
  :unique => true
Run Code Online (Sandbox Code Playgroud)

数据库对索引名称的限制会导致迁移失败.这是错误消息:

表'研究'上的索引名称'index_studies_on_user_id_and_university_id_and_subject_name_id_and_subject_type_id'太长; 限制为64个字符

我怎么处理这个?我可以指定不同的索引名称吗?

migration ruby-on-rails

369
推荐指数
7
解决办法
8万
查看次数

使用com.google.android.gms.maps.MapFragment的另一个片段复制ID,标记null或父ID

我有一个带有三个标签的应用程序.

每个选项卡都有自己的布局.xml文件.main.xml有自己的地图片段.这是应用程序首次启动时显示的那个.

除了在标签之间切换时,一切正常.如果我尝试切换回地图片段选项卡,我会收到此错误.切换到其他选项卡之间和之间的工作正常.

这可能有什么问题?

这是我的主类和我的main.xml,以及我使用的相关类(你也会在底部找到错误日志)

主要班级

package com.nfc.demo;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.widget.Toast;

public class NFCDemoActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ActionBar bar = getActionBar();
        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);

        bar.addTab(bar
                .newTab()
                .setText("Map")
                .setTabListener(
                        new TabListener<MapFragment>(this, "map",
                                MapFragment.class)));
        bar.addTab(bar
                .newTab()
                .setText("Settings")
                .setTabListener(
                        new TabListener<SettingsFragment>(this, "settings",
                                SettingsFragment.class)));
        bar.addTab(bar
                .newTab()
                .setText("About")
                .setTabListener(
                        new TabListener<AboutFragment>(this, "about",
                                AboutFragment.class)));

        if (savedInstanceState != null) {
            bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
        }
        // setContentView(R.layout.main);

    }

    @Override
    protected void onSaveInstanceState(Bundle …
Run Code Online (Sandbox Code Playgroud)

android illegalargumentexception android-maps android-fragments

325
推荐指数
6
解决办法
11万
查看次数

如何只用第一行输出git log?

我正在尝试自定义格式git log.我希望所有提交都显示在一行中.每行应仅显示提交消息的第一行.
发现git log --pretty=short应该做的伎俩,但我的电脑上显示完整的日志中git log做(除了时间戳).

此外,我尝试使用手册页中定义占位符.虽然,我找不到缩短日志消息的命令.我尝试了这一行git log --pretty=format:'%h : %s',它在一行中显示了短路哈希%h和完整的消息%s.

git version 1.7.3.1.msysgit.0在Vista上使用.


也许它与我编写提交消息的方式有关.这是一个例子:

Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.
Run Code Online (Sandbox Code Playgroud)

因此,通过给出的示例,我只希望Added some functionality.通过shortend哈希进行输出.

git version-control formatting logging commit-message

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

Android 1.6:"android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序"

我正在尝试打开一个对话框窗口,但每次我尝试打开它都会抛出此异常:

Uncaught handler: thread main exiting due to uncaught exception
android.view.WindowManager$BadTokenException: 
     Unable to add window -- token null is not for an application
  at android.view.ViewRoot.setView(ViewRoot.java:460)
  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
  at android.app.Dialog.show(Dialog.java:238)
  at android.app.Activity.showDialog(Activity.java:2413)
Run Code Online (Sandbox Code Playgroud)

我是通过showDialog显示器的id 调用来创建的.该onCreateDialog处理器记录良好,我可以通过它没有问题的一步,但因为它看起来像我想的东西我已经把它贴吧:

@Override
public Dialog onCreateDialog(int id)
{
    Dialog dialog;
    Context appContext = this.getApplicationContext();
    switch(id)
    {
        case RENAME_DIALOG_ID:
            Log.i("Edit", "Creating rename dialog...");
            dialog = new Dialog(appContext);
            dialog.setContentView(R.layout.rename);
            dialog.setTitle("Rename " + noteName);
            break;
        default:
            dialog = null;
            break;
    }
    return dialog;      
}
Run Code Online (Sandbox Code Playgroud)

这有什么不足之处吗?有些问题在创建对话框时已经讨论过这个问题onCreate …

android runtimeexception android-dialog android-windowmanager

301
推荐指数
8
解决办法
19万
查看次数

Android M - 检查运行时权限 - 如何确定用户是否选中"从不再问"?

根据这个:http://developer.android.com/preview/features/runtime-permissions.html#coding应用程序可以检查运行时权限和请求权限(如果尚未授予它).然后将显示以下对话框:

在此输入图像描述

如果用户拒绝重要权限,则应用程序应显示解释为何需要权限以及拒绝具有何种影响的解释.该对话框有两个选项:

  1. 再试一次(再次请求许可)
  2. 拒绝(app将在没有该权限的情况下工作).

Never ask again但是,如果用户检查,则不应显示带有解释的第二个对话框,尤其是如果用户之前已经拒绝过一次.现在的问题是:我的应用程序如何知道用户是否已检查过Never ask again?IMO onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)并没有给我这些信息.

第二个问题是:Google是否计划在权限对话框中添加自定义消息,以解释应用程序需要权限的原因?那样就永远不会有第二个对话框,肯定会有更好的ux.

android android-permissions android-6.0-marshmallow

288
推荐指数
10
解决办法
15万
查看次数