2014-04-23 57 views
0

雖然這不是火箭科學,但我不想重新發明輪子。我正在使用通過USB附件連接到硬件設備的Android。硬件具有可由Android用戶界面設置的值。其中許多值是8位字節。因此,某些字節字段可以由用戶編輯,我想輕鬆獲得他們的輸入並進行驗證。所以基本上十六進制輸入0x00 - 0xff 只是想知道這已經存在了那裏嗎?互聯網並沒有給我太多,所以它看起來像從頭開始。Android用戶輸入的十六進制字節值

+0

如果您覺得它有用,或者對其進行評論,您將很高興接受此答案! – caspase

回答

0

你可以使用一個普通NumberPicker用自定義NumberPicker.Formatter的值作爲十六進制數字格式:

public class MyFormatter extends NumberPicker.Formatter { 
    @Override 
    public String format(int value) { 
     if(value < 0x10) { 
      return "0" + Integer.toHexString(value); 
     } 
     return Integer.toHexString(value); 
    } 

}

然後使用:NumberPicker的十六進制

... 

myNumberPicker.setFormatter(new MyFormatter()); 
// use this to disable keyboard input 
myNumberPicker.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS); 

... 

截圖Formatter

Screenshot

+0

感謝您的信息,但Android號碼輸入似乎僅限於十進制輸入。我最終使用鍵盤。 – jwhitmore

+0

我已經更新了我的回答,使其更加清晰。我的方法不允許你使用鍵盤輸入數值(實際上它確實是這樣,但它很混亂,因爲鍵盤只是小數)。 – caspase

+0

雖然NumberPicker可以工作,但選擇一個字節值似乎並不高雅。所以範圍是0到255.數字選擇器適用於有限的範圍,但對於這種類型的範圍來說,我覺得它是一個麻煩的輸入機制。 – jwhitmore