2016-06-09 43 views
-1

因此,我通过执行File-> New - > Project - > Navigation Drawer Activity,使用Android Studio 2.1.2创建了一个Navigation Drawer Activity。我有4个布局文件作为从MainActivity访问TextView

  1. nav_header_main.xml
  2. content_main.xml
  3. app_bar_main.xml
  4. activity_main.xml中

content.main.xml拥有的helloTextView ID的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; 
    } 

我该如何去建立这个?

+2

'((TextView)findViewById(R.id.helloTextview)).setText(“You Selected Camera!”)'? – sonictt1

+1

究竟是什么问题?只要做到这一点常规的方式^ – Vucko

+0

@sonictt1工作!我是新手。请将其作为答案发布。 非常感谢 – envyM6

回答

1

((TextView) findViewById(R.id.helloTextView)).setText("You Selected Camera!");应该工作。

通常情况下,你会声明一个变量,如:TextView myTextView;作为一类范围内的变量,然后在你的onCreate()onCreateView()你会把:

myTextView = (TextView) findViewById(R.id.helloTextView);(类似于您DrawerLayout做了什么)

然后,你可以只是把:

myTextView.setText("You Selected Camera!");

然后别的地方在你Activity你可以使用myTextView而不必每次都使用findViewById()

尽管如此,这个答案的顶部的代码行将为你工作。 :)