小编Pau*_*aul的帖子

亚行通过无线

嘿,我想知道你需要root才能做到这一点吗?我想通过无线安装/运行应用程序来停止所有这些电缆切换.我还读过它会导致一些错误吗?这是在这个网站上的旧帖子,我想知道它现在可靠和容易吗?

java android adb

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

for y in y():这是如何工作的?

我正在寻找代码来在终端中旋转光标并找到它.我想知道代码中发生了什么.特别是for c in spinning_cursor():我从未见过这种语法.是因为我一次从生成器返回一个元素yield,并将其分配给c?在y()中使用x的任何其他例子?

import sys
import time

def spinning_cursor():
    cursor='/-\|'
    i = 0
    while 1:
        yield cursor[i]
        i = (i + 1) % len(cursor)

for c in spinning_cursor():
    sys.stdout.write(c)
    sys.stdout.flush()
    time.sleep(0.1)
    sys.stdout.write('\b')
Run Code Online (Sandbox Code Playgroud)

python yield generator

73
推荐指数
2
解决办法
5711
查看次数

使用子进程运行多个bash命令

如果我echo a; echo b在bash中运行,结果将是两个命令都运行.但是,如果我使用subprocess,则运行第一个命令,打印出整个行的其余部分.下面的代码是echos a; echo b而不是a b,如何让它运行这两个命令?

import subprocess, shlex
def subprocess_cmd(command):
    process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE)
    proc_stdout = process.communicate()[0].strip() 
    print proc_stdout

subprocess_cmd("echo a; echo b")
Run Code Online (Sandbox Code Playgroud)

python bash subprocess

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

从字符串中获取枚举的索引?

我有一个字符串值,我也有一个字符串数组和一个包含该范围的枚举.要获取数组中字符串的索引,请从提供的值中写出:

Arrays.asList(myClass.BAUD_RATES).indexOf(username)
Run Code Online (Sandbox Code Playgroud)

我如何为枚举这样做?我可以使用序数吗?或者我必须制作自己的方法?

方法可能如下:

public enum Fruit {
   ...
   static public boolean isMember(String aName) {
       Fruit[] aFruits = Fruit.values();
       for (Fruit aFruit : aFruits)
           if (aFruit.fruitname.equals(aName))
               return aFruit;
       return false;
   }
   ...
}
Run Code Online (Sandbox Code Playgroud)

java enums android

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

覆盖Android上的删除键?

我主要用dispatchKeyEvent中的这些行修复了这个问题:

byte[] cmdLeft = { (byte) 27, (byte) '[', (byte) 'D' };
byte[] cmdErase = { (byte) 27, (byte) '[', (byte) 'P' };


mSession.appendToEmulator(cmdLeft, 0, cmdLeft.length);
mSession.appendToEmulator(cmdErase, 0, cmdErase.length);
Run Code Online (Sandbox Code Playgroud)

现在唯一的问题是,如果我选择editText并点击删除,则删除一个字符,但两个字符似乎在屏幕上.因此,如果我写启用并点击删除它将改为enab但实际发送的是enabl

我重写了dispatchKeyEvent,它有点工作.如果选择了editText,终端现在会删除序列中的字符,这是一个很好的步骤.然而,主要问题仍然存在,如果自己选择终端,则将奇怪的小盒子写入屏幕而不是删除字符.好吧一个是写的,如果我一直按下删除它会停留在那个盒子上,但是下次我输入删除的数量时我按下了框.这很奇怪......

就像它只是覆盖了edittext而不是终端.

所有荣耀中都有奇怪的小盒子:

在此输入图像描述

public boolean dispatchKeyEvent(KeyEvent event) {
    if (event != null && event.getAction() == KeyEvent.ACTION_UP) {

        return false;
    }
    if (event.getKeyCode() == KeyEvent.KEYCODE_DEL) {

        try {
            sendOverSerial("\b".getBytes("UTF-8"));
        }
        catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    return super.dispatchKeyEvent(event);
};
Run Code Online (Sandbox Code Playgroud)

我使用android中的库连接到终端模拟器,这连接到串行设备(交换机)并显示我发送/接收的数据.我通过终端下方的文本框通过连接发送数据,或者通过键入终端本身并在两种情况下按键盘输入.它只会是一个使用的软键盘.如果我发送了一个不正确的字符串,由于没有删除密钥实现,我处于不可恢复的状态.我的editTxt中的退格键工作正常,我只是希望它在终端突出显示时起作用,而我正在写入.

目前,如果我按下删除一个奇怪的盒子字符出现,没有其他事情发生,我有时会在日志中得到一个例外(http://i.imgur.com/wMRaLPX.png).我想知道的是如何更改删除键功能,以便当我按下它时,我可以发送这样的删除字符,但也保留删除edittext框中的字符等功能:

sendOverSerial("\b".getBytes("UTF-8"))
Run Code Online (Sandbox Code Playgroud)

这会发送一个正确的后退空间,我只需要合并它. …

java android serial-port

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

处理unicode ,如何摆脱?安卓/ JAVA

我正在使用终端仿真器库来创建终端,然后我用它将串行输入的数据发送到串行设备.图书馆可以在这里看到.

当我向终端输入数据时,正在发送/接收一系列奇怪的字符.我认为unicode替换字符是通过串行发送的,串行设备不知道它是什么并返回〜0.

我写"test"时终端中显示的内容的屏幕截图: 在此输入图像描述

并显示发送的字符串和收到的数据的日志. http://i.imgur.com/x79aPzv.png

我创建了一个EmulatorView,它是终端视图.它在这里提到钻石.

private void sendText(CharSequence text) {
                int n = text.length();
                char c;
                try {
                    for(int i = 0; i < n; i++) {
                        c = text.charAt(i);
                        if (Character.isHighSurrogate(c)) {
                            int codePoint;
                            if (++i < n) {
                                codePoint = Character.toCodePoint(c, text.charAt(i));
                            } else {
                                // Unicode Replacement Glyph, aka white question mark in black diamond.
                                codePoint = '\ufffd';
                            }
                            mapAndSend(codePoint);
                        } else {
                            mapAndSend(c);
                        }
                    }
                } catch (IOException e) {
                    Log.e(TAG, "error …
Run Code Online (Sandbox Code Playgroud)

java unicode android character-encoding

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

LinearLayout里面的RelativeLayout?

我想知道我在这里做错了什么,为什么围绕这些按钮RelativeLayout导致错误?我没有很多编辑布局,我不能只是坚持相对或线性布局吗?

如果我没有将布局中的按钮环绕在一起,它们就会出现在彼此之下,我只是想尝试将它们水平放在彼此旁边.

我认为我完成整个布局的方式很糟糕,因为垂直方向看起来非常紧张.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >


   <LinearLayout android:id="@+id/topButtons" 
    android:layout_margin="4dip"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <Button android:id="@+id/deviceConnect"
        android:layout_margin="8dip"
        android:layout_weight="3"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:text="Connect2"/>
    <LinearLayout android:orientation="vertical"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <LinearLayout android:orientation="horizontal"
            android:layout_margin="8dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TextView android:text="Connected Adapter:"
                android:layout_gravity="center_vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
            <Spinner android:id="@+id/deviceSpinner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawSelectorOnTop="true"/>
            <TextView android:id="@+id/currentSettings" 
                android:layout_marginLeft="8dip"
                android:text="Current Settings: Not Connected"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"/>
        </LinearLayout>
        <LinearLayout android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <LinearLayout android:orientation="horizontal"
                android:layout_margin="8dip"
                android:layout_weight="1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <TextView android:text="Baud:"
                    android:layout_gravity="center_vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>
                <Spinner android:id="@+id/baudSpinner"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:drawSelectorOnTop="true"/> …
Run Code Online (Sandbox Code Playgroud)

layout android relativelayout android-linearlayout

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

至少列表清单

我有一个像这样的列表列表:

[[10564, 15], [10564, 13], [10589, 18], [10637, 39], [10662, 38], [10712, 50], [10737, 15], [10762, 14], [10787, 9], [10812, 12], [10837, 45], [3, 17], [7, 21], [46, 26], [48, 12], [49, 24], [64, 14], [66,
 17], [976, 27], [981, 22], [982, 22], [983, 17], [985, 13], [517, 9], [521, 15], [525, 11], [526, 13], [528, 14], [698, 14], [788, 24], [792, 19]]
Run Code Online (Sandbox Code Playgroud)

我试图找到每个列表中第二个元素的最低值(所以比较15到13到18等不比较10564和15),但也将它分成范围,所以我可以说,最低的第二个元素[1]在每个列表中,仅当元素[0]超过10000时...我该怎么做?我试过它,只能比较同一列表中的元素,这不是我想要的.在我提到的情况下,我会返回[10787,9],但如果有超过10000的另一个值9,我也想返回.

python list min

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

正则表达式删除所有不可打印的字符

我希望从字符串中删除所有不可打印的ascii字符,同时保留不可见的字符.我认为这会有效,因为空格,\n\r是不可见的字符,但不是不可打印的?基本上我得到一个带有 字符的字节数组,我不希望它们在其中.所以我试图将它转换为字符串,删除 字符再次使用它作为字节数组.

空间在我的代码中工作正常,但是现在\ r和\n不起作用.保留这些也是正确的正则表达式是什么?还是有更好的方式来做我正在做的事情?

public void write(byte[] bytes, int offset, int count) {

    try {
        String str = new String(bytes, "ASCII");
        str2 = str.replaceAll("[^\\p{Print}\\t\\n]", "");
        GraphicsTerminalActivity.sendOverSerial(str2.getBytes("ASCII"));

    } catch (UnsupportedEncodingException e) {

        e.printStackTrace();
    }

     return;
 }

} 
Run Code Online (Sandbox Code Playgroud)

编辑:我试过[^\x00-\x7F]这是ascii字符的范围....但是然后 符号仍然通过,很奇怪.

java regex android

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

使用正则表达式转换列表

我有一个列表,其中包含此表单中的元素,字符串可能会更改,但格式保持相似:

["Radio0","Tether0","Serial0/0","Eth0/0","Eth0/1","Eth1/0","Eth1/1","vlanX","modem0","modem1","modem2","modem3","modem6"]
Run Code Online (Sandbox Code Playgroud)

我想将其转换为下面的列表.你可以看到它会删除同一个字符串出现的副本,例如Eth - 只在新列表中出现一个并将数字转换为x和y以更通用:

["RadioX","TetherX","SerialX/Y","EthX/Y","vlanX","modemX"]
Run Code Online (Sandbox Code Playgroud)

我正在搞乱不同的正则表达式,我的方法很乱,会对你们想到的任何优雅的解决方案感兴趣.

这里有一些可以改进的代码,也设置不保留顺序,所以也应该改进:

a = ["Radio0","Tether0","Serial0/0","Eth0/0","Eth0/1","Eth0/2","Eth1/0","vlanX","modem0","modem1","modem2","modem3","modem6"]
c =[]
for i in a:
     b = re.split("[0-9]", i)
     if "/" in i:
         c.append(b[0]+"X/Y")
     elif len(b) > 1:
         c.append(b[0]+"X")
     else:
         c.append(b)
print set(c)

set(['modemX', 'TetherX', 'RadioX', 'vlanX', 'SerialX/Y', 'EthX/Y'])
Run Code Online (Sandbox Code Playgroud)

保留订单的设置可能有所改进:

unique=[]
[unique.append(item) for item in c if item not in unique]
print unique

['RadioX', 'TetherX', 'SerialX/Y', 'EthX/Y', 'vlanX', 'modemX']
Run Code Online (Sandbox Code Playgroud)

python regex

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