从 MainActivity 访问 TextView
Accessing TextView from MainActivity
所以我使用 Android Studio 2.1.2 创建了一个 Navigation Drawer Activity
,方法是执行文件 -> 新建 -> 项目 -> 导航抽屉 Activity。我有 4 个布局文件
- nav_header_main.xml
- content_main.xml
- app_bar_main.xml
- activity_main.xml
content.main.xml
有一个 ID 为 helloTextView
的 TextView
(我手动设置了它)。
在 MainActivity
上,一个方法处理导航项选择事件。现在我的目标是改变content.main.xml
的文本视图的文本,将文本设置为用户选择的内容。请注意以下代码块的注释--
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_camera) {
// Handle the camera action
// I want to change the content of helloTextView here
// I.E setText("You Selected Camera!")
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
我该如何着手建立它?
((TextView) findViewById(R.id.helloTextView)).setText("You Selected Camera!");
应该可以。
通常,您会声明一个变量,例如:TextView myTextView;
作为一个 class 范围的变量,然后在您的 onCreate()
或 onCreateView()
中放置:
myTextView = (TextView) findViewById(R.id.helloTextView);
(类似于您对 DrawerLayout
所做的)
然后,您可以输入:
myTextView.setText("You Selected Camera!");
然后在 Activity
中的任何其他地方,您可以只使用 myTextView
而不必每次都使用 findViewById()
。
不过现在,此答案最顶部的代码行对您有用。 :)
所以我使用 Android Studio 2.1.2 创建了一个 Navigation Drawer Activity
,方法是执行文件 -> 新建 -> 项目 -> 导航抽屉 Activity。我有 4 个布局文件
- nav_header_main.xml
- content_main.xml
- app_bar_main.xml
- activity_main.xml
content.main.xml
有一个 ID 为 helloTextView
的 TextView
(我手动设置了它)。
在 MainActivity
上,一个方法处理导航项选择事件。现在我的目标是改变content.main.xml
的文本视图的文本,将文本设置为用户选择的内容。请注意以下代码块的注释--
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_camera) {
// Handle the camera action
// I want to change the content of helloTextView here
// I.E setText("You Selected Camera!")
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
我该如何着手建立它?
((TextView) findViewById(R.id.helloTextView)).setText("You Selected Camera!");
应该可以。
通常,您会声明一个变量,例如:TextView myTextView;
作为一个 class 范围的变量,然后在您的 onCreate()
或 onCreateView()
中放置:
myTextView = (TextView) findViewById(R.id.helloTextView);
(类似于您对 DrawerLayout
所做的)
然后,您可以输入:
myTextView.setText("You Selected Camera!");
然后在 Activity
中的任何其他地方,您可以只使用 myTextView
而不必每次都使用 findViewById()
。
不过现在,此答案最顶部的代码行对您有用。 :)