2016-06-09 64 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()

儘管如此,這個答案的頂部的代碼行將爲你工作。 :)