Browse Source

add key swap

wangyongj 2 năm trước cách đây
mục cha
commit
101f6d5ceb

+ 19 - 6
app/src/main/java/com/xugame/gameconsole/dialog/gamemenu/GameMenuDialog.java

@@ -127,7 +127,7 @@ public class GameMenuDialog extends BaseDialog
                 @Override
                 public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                     if (b) {
-                        mReadArchiveIndex = index;
+                        keySettingIndex = index;
                         radioButton.setBackgroundColor(Color.GRAY);
                         isKeySettingRunning = true;
                     } else {
@@ -220,14 +220,27 @@ public class GameMenuDialog extends BaseDialog
                 int devicesID = event.getDeviceId();
                 String devicesName = event.getDevice().getName();
                 int keyCode = event.getKeyCode();
-                DebugUtil.i(TAG, "" + keyCode);
                 mKeyName.setText("按键ID:" + devicesID + "   设备名:" + devicesName + "  keycode:" + keyCode);
-                if (mReadArchiveIndex < KEYS.length) {
-                    mKeyNumText[mReadArchiveIndex].setBackgroundColor(Color.WHITE);
-                    KEYS[mReadArchiveIndex] = keyCode;
+                if (keySettingIndex < KEYS.length) {
+                    boolean isSwap = false;//是否交换键值
+                    mKeyNumText[keySettingIndex].setBackgroundColor(Color.WHITE);
+                    for (int i = 0; i < KEYS.length; i++) {
+                        if (keyCode == KEYS[i] && keySettingIndex != i) {
+                            int temp = KEYS[keySettingIndex];
+                            KEYS[i] = temp;
+                            KEYS[keySettingIndex] = keyCode;
+                            isSwap = true;
+                        }
+                    }
+                    if (!isSwap)//没有相同键值则直接赋值
+                        KEYS[keySettingIndex] = keyCode;
                 }
                 isKeySettingRunning = false;
-
+                String tempKeyStr = "";
+                for (int i=0;i<KEYS.length;i++) {
+                    tempKeyStr += KEYS[i] + "-";
+                }
+                DebugUtil.i(TAG, "key=" + tempKeyStr);
             }
             return true;
         } else {