小编Nic*_*ick的帖子

xml中的数组定义

在XML中,如何声明整数数组?

我可以声明如下:

<numbers type="array">
    <value>3</value>
    <value>2</value>
    <value>1</value>
</numbers>
Run Code Online (Sandbox Code Playgroud)

但可能有更简单的方式吗?

<numbers [3,2,1]></numbers>
Run Code Online (Sandbox Code Playgroud)

xml arrays

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

python获取unicode字符串大小

我有一个二进制文件.该文件包含UTF-8字符串.此外,保证这个字符串只是一个单词.在python中,如何获得此字符串中的字母数?

比方说,我打开这个文件并读取字节:

bytes = open("1.dat", "rb").read()
Run Code Online (Sandbox Code Playgroud)

接下来我要做些什么来找出UTF-8字符串的长度(字母,而不是字节)?

python binaryfiles utf-8

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

APP_PLATFORM,android:minSdkVersion和android:targetSdkVersion之间有什么关系?

我正在开发一个使用NDK功能的Android应用.我的应用程序定义android:minSdkVersion,并android:targetSdkVersionAndroidManifest.xmlAPP_PLATFORM在JNI/Application.mk.

我目前的理解是android:minSdkVersiondecalres支持的最小操作系统版本,android:targetSdkVersion声明要链接的Java库版本,并APP_PLATFORM声明要链接的C++库.

两个问题:

  1. 我的理解是否正确?

  2. 是否APP_PLATFORM更好android:minSdkVersion呢?或者他们必须彼此平等?

我的问题的原因:我希望我的应用程序可用于API> = 10的设备,但我需要使用在NDK AMotionEvent_getAxisValue中的platforms\android-13文件夹中定义的NDK函数(如).所以我用android:minSdkVersion=10APP_PLATFORM=13.项目编译成功,但是它可以在API 10-12设备上运行吗?

android android-ndk

14
推荐指数
2
解决办法
9323
查看次数

使用javap为Android Activity获取方法签名

当我在命令行中写入时javap -s java.awt.Label,我成功地获得了签名Label.现在我想获得Android Activity类的签名.但如果我把javap -s android.app.activity它写成结果ERROR: Could not find android.app.activity.

我究竟做错了什么?我应该改变PATH env var中的某些东西吗?

android javap

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

android EditText提示不会出现

这似乎是我遇到的最奇怪的事情.

这是一个布局:

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

<EditText        
    android:id="@+id/GuessAppEditText"
    android:lines="1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:gravity="center_horizontal"        
    android:inputType="textCapWords"
    android:hint="@string/Hint" />

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

所述hintEditText未示出.

如果我删除android:gravity="center_horizontal"或者android:inputType="textCapWords",提示变得可见.

我完全不知道有什么gravitytextCapWords有什么关系hint.它是另一个Android错误还是我做错了什么?在前一种情况下,什么是解决方法?我希望我的文本中心对齐并大写,并提示显示.或者我对可怜的Android想要太多?

android android-edittext

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

android软键盘出现时会破坏布局

这是一个布局:

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

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="0px"
            android:layout_weight="1" />

        <FrameLayout
            android:background="#0000ff"
            android:layout_width="match_parent"
            android:layout_height="0px"
            android:layout_weight="1" />

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="0px"
            android:layout_weight="1" />

    </LinearLayout>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" />

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

在此输入图像描述

当触摸EditText并出现软键盘时,我希望蓝条保持不变.即我希望保留它的大小和位置.我android:windowSoftInputMode在AndroidManifest中尝试了我的activity参数的所有四个可能值.并且总是我的蓝色条在软键盘上移动或缩小:

android:windowSoftInputMode="adjustUnspecified" 或默认情况下:

在此输入图像描述

android:windowSoftInputMode="adjustPan"或者android:windowSoftInputMode="adjustNothing":

在此输入图像描述

android:windowSoftInputMode="adjustResize":

在此输入图像描述

当软键盘出现时,它是否可以保持相同的大小和位置?

android android-layout android-softkeyboard

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

Android将参数传递给Native Activity

我的android应用程序包含两个活动:".MainActivity"和"android.app.NativeActivity".后者完全用C++实现.在按钮上单击".MainActivity"我启动一个尝试传递一些参数的本机:

public void pressedButton(View view)
{
    Intent intent = new Intent(this, android.app.NativeActivity.class);
    intent.putExtra("MY_PARAM_1", 123);
    intent.putExtra("MY_PARAM_2", 321);
    startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

如何从android.app.NativeActivity的入口点(即C函数void android_main(struct android_app* state))中获取MY_PARAM_1和MY_PARAM_2 ?

android android-ndk native-activity

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

垃圾收集与手动内存管理

这是一个非常基本的问题.我将使用C++和Java来表达它,但它确实与语言无关.考虑一下C++中一个众所周知的问题:

struct Obj
{
    boost::shared_ptr<Obj> m_field;
};

{
    boost::shared_ptr<Obj> obj1(new Obj);
    boost::shared_ptr<Obj> obj2(new Obj);
    obj1->m_field = obj2;
    obj2->m_field = obj1;
}
Run Code Online (Sandbox Code Playgroud)

这是一个内存泄漏,每个人都知道:).解决方案也是众所周知的:应该使用弱指针来打破"refcount interlocking".还已知原则上不能自动解决该问题.解决它只是程序员的责任.

但是有一个积极的事情:程序员可以完全控制refcount值.我可以在调试器中暂停我的程序并检查obj1,obj2的引用计数并理解存在问题.我还可以在对象的析构函数中设置断点并观察破坏时刻(或找出该对象尚未被破坏).

我的问题是Java,C#,ActionScript和其他"垃圾收集"语言.我可能会遗漏一些东西,但在我看来他们

  1. 不要让我检查对象的引用计数
  2. 当对象被破坏时不要让我知道(好吧,当对象暴露给GC时)

我经常听说这些语言不允许程序员泄漏内存,这就是为什么它们很棒.据我了解,他们只是隐藏了内存管理问题,并且很难解决它们.

最后,问题本身:

Java的:

public class Obj
{
    public Obj m_field;
}

{
     Obj obj1 = new Obj();
     Obj obj2 = new Obj();
     obj1.m_field = obj2;
     obj2.m_field = obj1;
}
Run Code Online (Sandbox Code Playgroud)
  1. 是内存泄漏吗?
  2. 如果是:我如何检测并修复它?
  3. 如果不是:为什么?

c++ java jvm memory-leaks memory-management

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

如何从 Python 中的文本文件中读取 input()

我的 Python 程序请求一些用户输入:

n = int(input())
for i in range(n):
    s = input()
    # ...
Run Code Online (Sandbox Code Playgroud)

出于调试目的,我想创建一个像这样的测试 input.txt 文件:

3
string1
string2
string3
Run Code Online (Sandbox Code Playgroud)

这样我每次启动调试时都不需要从键盘手动输入数据。

有没有办法input()从文本文件中获取,而不是从键盘获取(不更改程序代码)。

我使用 Wing Personal 作为开发工具。

更新

我确信,存在能够测试 python 程序传递各种输入并将输出与已知答案进行比较的机器人。我猜这些机器人不会用铁指敲击键盘。也许他们使用命令行工具传递input.txt给 Python,以便它input()从该文件读取,而不是从键盘读取。我想学习如何做到这一点。

python python-3.x

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

android自定义对话框背景

我需要在Android应用程序中显示自定义对话框.标准AlertDialog设计是不可接受的.Android文档说:

提示:如果需要自定义对话框,则可以将"活动"显示为对话框,而不是使用"对话框API".只需创建一个活动并将其主题设置为清单元素中的Theme.Holo.Dialog:

而已.活动现在显示在对话窗口而不是全屏.

听起来很有希望.我做到了,但透明度不起作用!背景总是灰色的:

在此输入图像描述

这是清单中的一个desc:

<activity
    android:name=".MyDialogActivity"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Holo.Dialog.NoActionBar" >
</activity>
Run Code Online (Sandbox Code Playgroud)

这是我活动的根源:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="#00000000"
    android:layout_width="400dp"
    android:layout_height="wrap_content" >

    // Content ... //

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

我也尝试过android:background="@null"- 效果是一样的.如果我使用android:background="#ff0000"那么它是红色的(应该是).但是我该如何让它变得透明?

更新

我结束了

<style name="MyThemeDialogCustom" parent="android:Theme.Holo.Dialog.NoActionBar" >
    <item name="android:windowBackground">@color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android android-dialog

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