2014-01-14 1 views
0

Я просматриваю список флажков по щелчку кнопки. То, что я хочу сделать, это захватить имя флажка во время выполнения, чтобы вычеркнуть целочисленное значение, указанное в имени. Я не ищу, чтобы получить значение или идентификатор. Так что в файле strings.xml, <string name="checkList1">Pain assessment.</string>, я пытаюсь получить checkList1 во время выполнения. Я могу получить текст без проблем. В настоящее время я циклически видовых элементов кода ниже:Захватить имя флажка во время выполнения в android

RelativeLayout root = (RelativeLayout)findViewById(R.id.Root); 

      for (int i = 0; i < root.getChildCount(); i++) 
      { 
       View v1 = root.getChildAt(i); 
       Class c = v1.getClass(); 

       if (c == CheckBox.class) 
       { 
        CheckBox thisBox = (CheckBox)v1; 

        if (thisBox.isChecked()) 
        { 
         String text = (String)thisBox.ge; 

         DoDailyCheckListUpdate(thisBox.isChecked(),checkBoxCount); 
         countItemsFinished++; 
        } 

        checkBoxCount++; 
       } 
      } 

То, что я ищу, чтобы каким-то образом получить имя Checkbox thisBox. Поэтому, когда он перебирается и набрасывает флажок «Оценка боли», я хочу, чтобы вытащить контрольный список1. Не доходя до того, как копировать файл strings.xml на основе текста, который я нахожу для получения имени, я надеялся, что, возможно, было более простое решение, которое я, возможно, не заметил.

Благодарю вас заранее.

+0

вы можете добавить тег к флажку, а затем получить имя флажка из тега ?? –

+0

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

+0

возможно да :) –

ответ

1

CheckBox простирается от TextView так, чтобы извлечь текст из него довольно прост:

String text = thisBox.getText().toString(); 

http://developer.android.com/reference/android/widget/CheckBox.html

Если вы хотите получить имя ключа строки. Я предлагаю вам поставить его в тег объекта:

thisBox.setTag(getResources().getResourceEntryName(R.string. checkList1); 

Получить это так:

String text = (String)thisBox.getTag(); 

, что необходимо сделать трюк.

+0

Это дает мне оценку боли. Я ищу, чтобы получить фактическое имя из файла strings.xml, а не значение. –

+0

Ответ отредактирован, надеюсь, он поможет – Andros

+0

Да, это делает трюк. Эти маленькие кусочки getResources() и другие вещи, которые я все еще узнаю. Спасибо за информацию. Это определенно сэкономило время, тем более, что я проснулся в 1:23 утра, и теперь уже 4:03 утра, и я начал рисовать с побочным проектом, и мой мозг не в полной мере. Я на круиз-контроль. –