以下是简单TextView的XML代码:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/test"/>
然后,在MainActivity中,它使用如下:
TextView test = (TextView) findViewById(R.id.test);
test.setText("test");
我想知道如何在Main类中访问视图,Main类是在xml布局中定义的。
任何人都可以解释它是如何发生的吗?
答案 0 :(得分:1)
如何在Main类中访问该视图
老实说,我不太了解这个过程。让我帮助你了解我所知道的事情:
Activity
将在setContentView
方法中搜索布局XML。findViewById
将我们创建的实例(在您的情况下测试)链接到布局XML。当然,您可以执行以下操作:
TextView test2 = new TextView(this);
这意味着实例不必须存在于XML中。
抱歉,英语不是我的母语。
答案 1 :(得分:1)
在您的活动上,您有:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
//...
}
根据Android文档,setContentView负责将您的XML布局链接到您的活动:
将活动内容设置为显式视图。放置此视图 直接进入活动的视图层次结构。它本身就是一个 复杂的视图层次结构。
在设置了活动的内容视图后,您可以使用findViewById来访问与您的活动相关联的XML视图:
查找由XML中的id属性标识的视图 在onCreate(Bundle)处理。
希望它能帮助您理解这个过程! :)
答案 2 :(得分:0)
我认为这是方法
1.当您创建或声明文本视图或类似内容时,在R文件(JAVA文件)中生成引用。
2.您通过
访问的内容 R.id.test
这是您的链接工作方式