Android: установка Редактирование текста или текстового вида

Я разрабатываю приложение, в котором я создаю Edittext программно следующим образом:

EditText edText = new EditText(this); edText.setId(1); edText .setLayoutParams(new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0f)); edText .setInputType(InputType.TYPE_CLASS_NUMBER); edText.setHint("dsgsdgsgs"); tableLayout.addView(edText); 

Здесь я устанавливаю id текста Edit как «1» по строке edText.setId(1); В целом.

Но мне нужно – я хочу установить идентификатор в качестве символа, например:

 edText.setId("edittext_hello"); 

Так что я могу получить к нему доступ через этот идентификатор. Как я могу достичь этой задачи, пожалуйста, помогите.

Вы не можете установить id как String. Вы можете назначить целое число как Id. Но если вы хотите использовать String как id для удобства использования, тогда – в res / values ​​/ файле ids.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <item name="edit_text_hello" type="id"/> </resources> 

И затем используйте его как:

 edText.setId(R.id.edit_text_hello); 

Поэтому вы можете делать то, что вам нужно.

Как говорили другие, вы не можете этого сделать. Почему вы хотите / каково ваше требование?

Вы можете создать идентификатор в XML-файле и использовать его, если хотите, чтобы он был описательным. Это также лучший подход, чем использование литеральных int s, так как вы можете столкнуться с идентификатором с другими представлениями в иерархии компоновки (маловероятно, но возможно). Это для меня кажется лучшим / самым чистым решением вашей проблемы.

См. http://developer.android.com/guide/topics/resources/more-resources.html#Id

Например, в res/values/id.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="edittext_hello" /> </resources> 

А затем установить с помощью

 edText.setId(R.id.edittext_hello); 

Нет, вы не можете установить id как String. Вы можете назначить integer как Id. Вы можете использовать setTag() для View with String. Но для id он будет только Integer. Поскольку ресурсы android поддерживаются в файле R.java для целочисленного типа.

Обновить:

Почему вы не устанавливаете String или другие типы данных (без целочисленного) id на любой ресурс android?

Потому как:

Идентификатор ресурса Android – это 32-разрядное целое число. Он включает

 an 8-bit Package id [bits 24-31] an 8-bit Type id [bits 16-23] a 16-bit Entry index [bits 0-15] 

Идентификатор пакета идентифицирует кусок пакета, который содержит ресурс.

Идентификатор типа идентифицирует тип ресурса и, следовательно, соответствующий кусок Typepec и кусок типа или куски, которые содержат его значение или значение (значения)

Индекс Entry идентифицирует отдельный ресурс в куске Typepec и типе (-ях) типа.

Вы не можете установить id с char , String или что-нибудь еще, кроме int … потому что id поддерживается файлом R.java который содержит только int .

Вы можете использовать setTag() вместо setId() .

Используйте setTag() как setTag() ниже …

 edText.setTag("edittext_hello"); 

Вы можете использовать setText () вместо setId ().

EdText_view.setText («Ваш текст»);