Получить текстовую позицию в документе XPS

Наряду с классическими причинами, упомянутыми в другом месте:

  • Убедитесь, что вы вызывали setContentView() перед findViewById()
  • Убедитесь, что id вы хотите находится в представлении или макете, которую вы указали на setContentView()
  • Убедитесь, что id не случайно дублируется в разных макетах

Существует один Я нашел для пользовательских представлений в стандартных макетах, что противоречит документации:

Теоретически вы можете создать пользовательский вид и добавить его в макет ( см. Здесь ). Тем не менее, я обнаружил, что в таких ситуациях иногда атрибут id работает для всех представлений в макете, кроме настраиваемых. Решение, которое я использую:

  1. Замените каждое пользовательское представление на FrameLayout теми же свойствами макета, что и пользовательское представление. Дайте ему соответствующий id, скажем frame_for_custom_view.
  2. В onCreate:
    setContentView(R.layout.my_layout);
    FrameView fv = findViewById(R.id.frame_for_custom_layout);
    MyCustomView cv = new MyCustomView(context);
    fv.addView(cv);
    
    , который помещает пользовательский вид в фрейм.

0
задан nesma mostafa 9 May 2019 в 09:43
поделиться