#android
#Android
Вопрос:
У меня есть linearlayout, как я могу получить доступ к view внутри этого макета с помощью программирования.
Комментарии:
1. Это динамическое представление или статическое?
2. Какое представление? Можете ли вы опубликовать свой XML-макет и конкретизировать свой вопрос?
Ответ №1:
Конечно, скажите, есть ли у вас LineraLayout linearLayout
, и в его xml у вас есть TextView
что-то вроде
<LinearLayout [...]>
<TextView android:id="@ id/textView" [...] />
</LinearLayout>
затем вы можете получить к нему доступ TextView
с помощью
final TextView txt = (TextView)linearLayout.findViewById(R.id.textView);
Здесь у вас есть ваше LinearLayout, определенное в файле ресурсов xml.
Вы должны присвоить своему id
атрибуту TextView
, чтобы он был доступен непосредственно из вашего кода. Для этой цели там стоит android:id="@ id/textView"
.
Ответ №2:
В XML-файле вам нужно будет присвоить представлению идентификатор..
android:id="@ id/someRandomID"
Затем в вашем основном файле Java вы добавляете это:
LinearLayout layout = (LinearLayout)findViewById(R.id.someRandomID);
Ответ №3:
(([TYPE]) findViewById(R.id.[NAME]))
Например, установка текста на кнопке:
((Button) findViewById(R.id.my_button)).setText("New text");
Комментарии:
1. Что, если view является динамическим и не имеет идентификатора?
Ответ №4:
Предполагая, что у вас есть linearlayout с идентификатором «linear1», а внутри этого макета у вас есть ImageView с идентификатором «image1», вы можете выполнить следующее в вашем методе onCreate в вашем классе activity:
public void onCreate(Bundle bundle)
{
setContentView(R.layout.linear1);
ImageView image = (ImageView) findViewById(R.id.image1);
}
Это очень простой пример, предполагающий, что вы устанавливаете linear1 в качестве основного макета вашей активности.