小编Ale*_*ler的帖子

切换到新片段时出现奇怪的logcat错误

我没有遇到像这样的堆栈跟踪.这特别奇怪,因为我只能在调试时得到错误.(在没有调试的情况运行应用程序不会产生此错误).从导航抽屉中选择特定页面时会发生这种情况.我刚刚从活动切换到片段,我可能没有正确处理我的片段事务.我很感激任何输入!非常感谢,节日快乐!

这是堆栈跟踪:

Process: com.kohlerbear.whowascnscalc, PID: 2415
java.lang.NullPointerException: Attempt to read from field 'boolean android.support.v4.app.BackStackRecord.mAddToBackStack' on a null object reference
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:685)
        at android.support.v4.app.FragmentManagerImpl.execPeerrorndingActions(FragmentManager.java:1479)
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:447)
        at android.os.Handler.handleCallback(Handler.java:740)
        at android.os.Handler.dispatchMessage(Handler.java:104)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5223)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Run Code Online (Sandbox Code Playgroud)

这就是我如何处理我的片段更改(不确定这是否是问题,只是通过跟踪提到后台堆栈的事实来判断).无论我是否打电话,应用程序都会崩溃(再次,仅在调试时)ft.addToBackStack(null).

Fragment frag = new ThirdScreenFragment(); 
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content_frame, frag);
ft.addToBackStack(null);
ft.commit();`
Run Code Online (Sandbox Code Playgroud)

任何想法和输入都赞赏:)

android android-fragments

22
推荐指数
2
解决办法
5434
查看次数

在简单,无回报,无恐慌的功能中延迟是否有任何优势?

通过标准库,我看到很多类似于以下的功能:

// src/database/sql/sql.go
func (dc *driverConn) removeOpenStmt(ds *driverStmt) {
    dc.Lock()
    defer dc.Unlock()
    delete(dc.openStmt, ds)
}
...

func (db *DB) addDep(x finalCloser, dep interface{}) {
    //println(fmt.Sprintf("addDep(%T %p, %T %p)", x, x, dep, dep))
    db.mu.Lock()
    defer db.mu.Unlock()
    db.addDepLocked(x, dep)
}
// src/expvar/expvar.go
func (v *Map) addKey(key string) {
    v.keysMu.Lock()
    defer v.keysMu.Unlock()
    v.keys = append(v.keys, key)
    sort.Strings(v.keys)
}
// etc...
Run Code Online (Sandbox Code Playgroud)

即:简单的功能,没有返回,可能没有办法恐慌,仍然推迟他们的互斥锁的解锁.据我所知,a的开销defer已得到改善(可能仍在改进过程中),但话虽如此:是否有任何理由defer在这些函数中加入?难道这些类型的延迟最终会减慢高流量功能吗?

go

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

Xamarin自定义渲染器中的装配声明

我正在阅读Xamarin Forms文档,了解自定义渲染器,试图了解渲染器的每个实现所需的汇编属性实际上是什么.我看了一下AssembliesC#文档,似乎找不到(简单)的解释.按照文档中概述的MyEntry示例,有人可以了解一下这个程序集属性发生了什么/它实际上做了什么?

为清楚起见,这些是我所说的声明类型: [assembly: ExportRenderer (typeof (MyEntry), typeof (MyEntryRenderer))]

c# xamarin xamarin-forms

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

为什么追加预分配切片比索引更快?

我编写了以下Go基准测试(Go1.9.2,Linux amd64)来测试索引与追加:

func BenchmarkIndex(b *testing.B) {
    for i := 0; i < b.N; i++ {
        existing := make([]int64, 1000, 1000)
        init := make([]int64, 1000) // len 1000, cap 1000
        for index, element := range existing {
            init[index] = element
        }
    }
}

func BenchmarkAppend(b *testing.B) {
    for i := 0; i < b.N; i++ {
        existing := make([]int64, 1000, 1000)
        init := make([]int64, 0, 1000) // len 0, capacity 1000
        for _, element := range existing {
            init = append(init, …
Run Code Online (Sandbox Code Playgroud)

append go

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

Shell内置执行

我对内置shell的定义有点困惑.根据Bash参考手册,对于任何内置,shell直接执行命令,而不调用另一个程序."命令直接执行"究竟意味着什么?例如,让我们看一下cd内置的:

$ which cd 
/usr/bin/cd
$ type cd 
cd is a shell builtin
Run Code Online (Sandbox Code Playgroud)

现在,让我们看看非内置grep:

$ which grep 
/usr/bin/grep
$ type grep 
grep is /usr/bin/grep
Run Code Online (Sandbox Code Playgroud)

它似乎cd是一个单独的二进制文件.如何执行cd(或任何其他内置)与执行grep(或任何其他非内置)不同?

bash shell

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

如何将终端中定义的变量读取到 bash 脚本


我是 shell 脚本的新手。我有一个非常基本的问题,关于我们如何读取终端中定义的变量作为 shell 脚本的输入。

假设我在我的终端
a=22 中定义了这个变量,
如果我这样做的echo $a话,它会在我的终端中给出 22 作为输出。

我想将此变量作为参数传递给名为 input.sh 的脚本

#!/bin/bash

echo "Enter variable name:"
read Input
echo $Input
Run Code Online (Sandbox Code Playgroud)

我将脚本运行为 ./input.sh 它弹出的消息为
Enter variable name:$a

但是在输出中我有 $a 作为输出而不是 22。我想要 22 作为输出。有没有办法做到这一点?

linux bash shell command-line-arguments

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

随时扩展ListView单元格的大小

我正在尝试实现一个解决方案,以增加ListView Cell使用时Xamarin Forms(和自定义渲染器,如果需要)的大小.

我对C#还是很陌生,对我来说,数据绑定的想法仍然有点不清楚,但是,似乎这就是解决这个问题的方法(也许就像绑定Height/ HeightRequest属性一样)细胞?).

到目前为止,我的尝试都没有成功.

如果有人能给我一个正确的方向,那将非常感激.

谢谢!

xamarin xamarin.forms

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

有没有办法在Android中重用UI组件的XML声明?

我已经做了一些窥探我感觉相对简单,但是,我想我不太确定如何说出这个问题因为我没有得到很多结果.如果这是一个重复的问题,我道歉.我想要做的是定义EditText一些像这样的属性:

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:background="#00000000"
    android:digits="0123456789.,"
    android:ellipsize="start"
    android:maxLines="1"
    android:gravity="center"
    android:hint="    "/>
Run Code Online (Sandbox Code Playgroud)

从那里开始,我希望简单地声明MyEditText(假设我的上面的定义叫做MyEditText),并且每次我希望使用EditText这种风格时都不必担心定义这9个属性.这可能吗?我已经阅读了Android的自定义组件指南,但是,对于我想要实现的目标来说,它似乎有些过分.(我不希望做任何自定义的事情,我只是想将一些已经存在的功能打包到一个组件中.)有人能指出我正确的方向吗?

谢谢!!

android android-layout

-2
推荐指数
1
解决办法
159
查看次数