小编Tha*_*e90的帖子

如何以编程方式隐藏视图?

在我的申请中,我LinearLayout正好在彼此之上.通过一个菜单选项,我希望能够使底部消失,让顶部的一个落在消失的上面LinearLayout.

问题是,我不知道如何在Java中这样做.

它不需要动画,我想隐藏Layout另一个活动(菜单)的返回,在OnActivityResult.菜单activity设置了boolean我签入的内容OnActivityResult,根据它的值,我确定是否需要隐藏或显示底部Layout:

// Only change value if it is different from what it was.
if(mUseVolumeButtonAsPTT != resultData.getBoolean("UseVolumeButtonAsPTT")){
    mUseVolumeButtonAsPTT = resultData.getBoolean("UseVolumeButtonAsPTT");
    if(!mUseVolumeButtonAsPTT){
        // Hide lower LinearLayout.
    } else {
        // Show lower LinearLayout.
    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一个关于如何做到这一点的提示或链接?

java android

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

如何让我的ListView滚动?

我有一个非常复杂的View构建,作为其中的一部分,我在ScrollView中的LinearLayout内部有一个ListView(还有很多组件,但在这个问题上它们并不重要).

现在整个活动滚动得很好,但ListView的高度有限,当它里面的项目超过高度时,我的屏幕消失了.我试图将ListView放在它自己的ScrollView中,但这不起作用.当我尝试在ListView上滚动时,选择了主ScrollView并且我的屏幕滚动而不是ListView.

我的问题可能听起来很简单,但我无法解决这个问题......是否有可能使ListView可滚动?

相关的XML:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

    <LinearLayout android:id="@+id/GlobalLayout" 
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:orientation="vertical" >

        <ListView android:id="@+id/EndpointList"
                  android:choiceMode="multipleChoice"
                  android:layout_height="175dip"
                  android:layout_width="fill_parent" />

    </LinearLayout>

</ScrollView>
Run Code Online (Sandbox Code Playgroud)

android listview scrollable

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

如何将本地主机IP地址转发到Android模拟器?

我知道有可能将我的开发机器的端口转发到Android模拟器,但是如何完成?我已经在android-developers网站上找到了解决方案,但是我看不出他们的意思是如何表达他们的......有人对此有明确的指示吗?我的开发机器正在运行Windows.

ip android android-emulator

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

AudioTrack:通过WiFi播放声音

我的应用程序中有一个AudioTrack,设置为Stream模式.我想写一些通过无线连接收到的音频.AudioTrack声明如下:

mPlayer = new AudioTrack(STREAM_TYPE,
                         FREQUENCY,
                         CHANNEL_CONFIG_OUT,
                         AUDIO_ENCODING,
                         PLAYER_CAPACITY,
                         PLAY_MODE);
Run Code Online (Sandbox Code Playgroud)

参数定义如下:

private static final int FREQUENCY = 8000,
                         CHANNEL_CONFIG_OUT = AudioFormat.CHANNEL_OUT_MONO,
                         AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT,
                         PLAYER_CAPACITY = 2048,
                         STREAM_TYPE = AudioManager.STREAM_MUSIC,
                         PLAY_MODE = AudioTrack.MODE_STREAM;
Run Code Online (Sandbox Code Playgroud)

但是,当我使用write()将数据写入AudioTrack时,它将播放不稳定...调用

byte[] audio = packet.getData();
mPlayer.write(audio, 0, audio.length);
Run Code Online (Sandbox Code Playgroud)

只要通过网络连接接收到数据包就会生成.有没有人知道为什么它听起来不稳定?也许它与WiFi连接本身有关?我不这么认为,因为当我通过UDP将数据从Android手机发送到另一个来源时,声音听起来并不可怕.声音听起来完整而且根本没有波动......所以有人知道为什么会发生这种情况吗?

audio android

10
推荐指数
2
解决办法
7105
查看次数

从PHP启动守护进程

对于网站,我需要能够启动和停止守护进程.我目前正在做的是

exec("sudo /etc/init.d/daemonToStart start");
Run Code Online (Sandbox Code Playgroud)

守护进程已启动,但Apache/PHP挂起.做一个ps aux透露sudo自己变成了一个僵尸进程,有效地杀死了所有进一步的进展.尝试从PHP启动一个daeomon时这是正常的行为吗?

是的,Apache有权执行该/etc/init.d/daemonToStart命令.我修改了/ etc/sudoers文件以允许它这样做.不,我不允许Apache能够执行任何类型的命令,只有少数几个允许网站工作.

无论如何,回到我的问题,有没有办法允许PHP以不创建僵尸进程的方式启动守护进程?我问这个是因为当我反向操作时,停止已经启动的守护进程,效果很好.

php daemon zombie-process

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

如何为Android指定null作为XML属性?

如果我想在那里放置null,我需要为属性添加什么?

例如,这段代码:

<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:drawable="@drawable/ef_gradient_blue" />
    <item android:drawable="@null" />

</transition>
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为我的应用程序在尝试加载此drawable时崩溃了.我需要它为null,因此它可以从完全不透明转换为完全透视.

在我的Java中,我加载它像这样:

mTransitionBlue = (TransitionDrawable)mProjectResources.getDrawable(R.drawable.transition_blue);
Run Code Online (Sandbox Code Playgroud)

但是我得到了一个运行时异常,说它找不到transition_blue.xml,这是之前指定的XML.那我该怎么做呢?

android

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

无法在任意上下文中获取JNIEnv*值

我有NDK的问题.

在我的JNI_OnLoad方法中,我缓存了JavaVm指针,调用该方法的类以及稍后使用的方法ID:

JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved){
    JNIEnv *env;
    cachedJVM = jvm;
    if((*jvm)->GetEnv(jvm, (void**)&env, JNI_VERSION_1_6)){
        LOG_ERROR("Could not get JNIEnv*");
        return JNI_ERR;
    }
    javaClass = (*env)->FindClass(env, "org/test/opensl/AudioProcessor");
    if(javaClass == NULL){
        LOG_ERROR("Could not get java class");
        return JNI_ERR;
    }
    javaCallbackMID = (*env)->GetMethodID(env, javaClass, "enqueueAudio", "([B)V");
    if(javaCallbackMID == NULL){
        LOG_ERROR("Could not get method identifier");
        return JNI_ERR;
    }
    return JNI_VERSION_1_6;
}
Run Code Online (Sandbox Code Playgroud)

我有一个小的实用程序方法定义如下,应该给我一个指向JNIEnv的指针:

JNIEnv* JNU_GetEnv(){
    JNIEnv* env;
    (*cachedJVM)->GetEnv(cachedJVM, (void**)&env, JNI_VERSION_1_6);
    return env;
}
Run Code Online (Sandbox Code Playgroud)

最后,我有一个来自OpenSL ES的回调SLAndroidSimpleBufferQueueItf,我想从以下处理录制的音频SLRecordItf:

void recorderCallback(SLAndroidSimpleBufferQueueItf bq, void …
Run Code Online (Sandbox Code Playgroud)

c java-native-interface android android-ndk

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

是否需要释放来自OpenSL ES音频播放器的完成缓冲区?

只是为了确认.当通过OpenSL ES for Android创建的音频播放器完成播放缓冲区时,垃圾收集器会自动释放该缓冲区吗?或者我需要自己释放缓冲区吗?

如果是后者,我可以使用一些帮助.但就目前而言,我不会发布任何代码,直到我被告知我需要自己做...

c android android-ndk opensl

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

并非所有命名空间都包含在Sandcastle构建文档中

我有一个C#项目,在一个解决方案中有两个名称空间.我已经记录了两个命名空间中的所有类/函数/成员/等.由于这个项目是一个小型研究项目,名称空间是DocTestLibraryDocTestLibrary.Events.但是,当我尝试通过Sandcastle从它创建文档时,它只会为DocTestLibrary命名空间创建文档.我需要在Sandcastle中进行任何设置才能完成这项工作吗?我对此表示怀疑,因为我已经仔细研究了大部分内容.

奇怪的是,Doxygen能够很好地生成文档.


为了提供更多信息,我检查了Sandcastle为构建生成的日志.看来这个条目导致其余的不显示.

Warn: ResolveReferenceLinksComponent2: Unknown reference link target 'T:DocTestLibrary.Events.DemoEvent'.
Run Code Online (Sandbox Code Playgroud)

我也发现了别的东西.

DocTestLibrary命名空间包含两个类:

  • 识别TestClass
  • StaticHelper

顾名思义,StaticHelper是一个只有静态方法的辅助类.然而,Sandcastle也否认要处理这个文件.只有TestClass得到了处理.只是让我感到困惑的是,在日志中没有关于此的条目.

c# sandcastle

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

我可以从编码的UTF-8字节数组创建DOM文档吗?

我的情况:我有一个接受字节数组的方法.有问题的数组使用UTF-8编码,最初是XML消息.我希望能够使用DOM解析器重新构造此消息.我知道我可以通过使用a从字节数组创建一个Document ByteBuffer.唯一的问题是,如果我将它直接放在传递的字节数组上,它将创建一个损坏的文档(如果可能的话).这是因为该数组是编码的XML消息,以UTF-8编码.但是,当我通过使用decode()方法解码数组时,我得到一个CharBuffer返回:

ByteBuffer encodedData = ByteBuffer.wrap(data);
CharBuffer decodedData = Charset.forName("UTF-8").decode(encodedData);
Run Code Online (Sandbox Code Playgroud)

我不知道如何从这个构造Document,因为在DocumentBuilder中没有定义将接受CharBuffer的parse()方法....

任何人都可以帮我这个吗?

java xml android dom

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

使用自定义属性和严重性级别为提升日志接收器设置自定义过滤器

我有一个日志设置,其中有两种类型的日志消息:

  • 1 仅基于严重性级别
  • 1 仅基于自定义标签属性

这些属性定义如下:

BOOST_LOG_ATTRIBUTE_KEYWORD(severity, "Severity", trivial::severity_level)
BOOST_LOG_ATTRIBUTE_KEYWORD(tag_attr, "Tag", std::string)
Run Code Online (Sandbox Code Playgroud)

我想创建一个过滤器功能,允许根据 2 个标准中的任何一个将消息添加到我的日志中(请注意,基于自定义标记属性的日志消息始终与严重性级别信息一起打印,基于平凡记录器的严重性水平)。

所以我想要一个过滤器,它允许基于消息是否具有自定义标签的消息,如果没有,则基于消息的严重性。

我试图有一个相对简单的过滤器,它执行以下操作:

sink_->set_filter(
    trivial::severity >= severityLevel
    || (expr::has_attr(tag_attr) && tag_attr == "JSON" && logJson_)
);
Run Code Online (Sandbox Code Playgroud)

但是,severityLevel 可能是 Debug、Info、Warning、Error 或 Fatal,如果级别配置为 Debug 或 Info,则过滤器将忽略自定义标记属性。

我曾尝试使用 c++11 lambda,如下所示:

sink_->set_filter([this, severityLevel](const auto& attr_set) {
    if (<condition for custom tag first>) {
        return true;
    } else if (<condition for severity level second>) {
        return true;
    } else {
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

但后来我不知道如何实际检查我的条件。我尝试了以下方法:

if (attr_set["Tag"].extract<std::string>() == "JSON" && logJson_) …
Run Code Online (Sandbox Code Playgroud)

filtering boost-log

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

如何正确获取Java中的当前时间?

这段C#代码的相应Java代码是什么?

public static readonly DateTime Epoch = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc);

public static long Now
{
    get { return (long)(DateTime.UtcNow - Epoch).TotalMilliseconds; }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以用一个Date对象计算这个,但是不是Calendar来自Java的C#的DateTime不同吗?

目前我使用这篇Java作品:

public static long getCurrentTimeMillis(){
    TimeZone here = TimeZone.getDefault();
    Time time = new Time(here.toString());
    time.setToNow();
    return time.toMillis(false);
}
Run Code Online (Sandbox Code Playgroud)

但是这两段代码之间的区别很大...... C#代码比Java代码多出150万毫秒......我怎样才能从Java代码中获得正确的时间(以毫秒为单位)?

c# java time

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

如何检测网络中的变化?

我需要知道如何检测Wi-Fi网络中的交换机,虽然是自动或手动,但这并不重要.当检测到开关时,整个系统是否有某种意图被广播?或者我是否必须通过调用ConnectivityManager上的方法手动检查是否选择了新网络?

networking android

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