Считайте ключ реестра

Похоже, вы хотите получать сенсорные события из всей области вашего макета для этого конкретного теста. Попробуйте подключить сенсорный слушатель к родительскому представлению, а не к отдельному целевому виду.

Это не очень распространенный подход. В большинстве случаев вы захотите прослушивать события касания в определенном дочернем представлении, и если у вас есть другие представления в макете, которые обрабатывают события касания (например, кнопка), они будут иметь приоритет над родительским представлением. См. http://developer.android.com/guide/topics/ui/ui-events.html для получения дополнительной информации об обработке событий пользовательского интерфейса.

Макет (touch_viewer.xml):



    

А в вашей деятельности:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.touch_viewer);

    final LinearLayout parent = (LinearLayout) findViewById(R.id.parent);
    final TextView text = (TextView) findViewById(R.id.text);
    parent.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent ev) {
            text.setText("Touch at " + ev.getX() + ", " + ev.getY());
            return true;
        }
    });
}

22
задан Brad Koch 27 September 2013 в 03:08
поделиться

2 ответа

Чтение реестра довольно просто. Пространство имен Microsoft.Win32 имеет статический класс Registry . Чтобы прочитать ключ из узла HKLM , введите следующий код:

RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("Software\\NodeName")

Если узел - HKCU , вы можете заменить LocalMachine на CurrentUser .

Получив объект RegistryKey , используйте GetValue , чтобы получить значение из реестра. Продолжение. Используя приведенный выше пример, можно получить значение реестра pathName:

string pathName = (string) registryKey.GetValue("pathName");

И не забудьте закрыть объект RegistryKey , когда вы закончите с ним (или поместите оператор, чтобы получить значение в Использование блока ).

Обновления

Я вижу пару вещей. Во-первых, я бы изменил pathName на статическое свойство, определяемое как:

Private static string PathName
{ 
    get
    {
         using (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey(@"Software\Copium"))
         {
              return (string)registryKey.GetValue("BinDir");
         }
    }
}

Две проблемы:

  1. Ссылка RegistryKey будет держать реестр открытым. Использование этого параметра в качестве статической переменной в классе вызовет проблемы на компьютере.
  2. В пути к реестру используются косые черты, а не обратные.
46
ответ дан 29 November 2019 в 03:48
поделиться
try
{
    RegistryKey regKey = Registry.LocalMachine;
    regKey = regKey.OpenSubKey(@"Software\Application\");

    if (regKey != null)
    {
        return regKey.GetValue("KEY NAME").ToString();
    }
    else
    {
        return null;
    }
}
catch (Exception ex)
{
  return null;
}
2
ответ дан 29 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: