2016-06-09 2 views
-1

Итак, я создал Navigation Drawer Activity с помощью Android Studio 2.1.2, выполнив File-> New -> Project -> Navigation Drawer Activity. У меня есть 4 файла макета, какДоступ к TextView из MainActivity

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

content.main.xml имеет TextView с идентификатором helloTextView (Я установил его вручную). В методе 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 (« Вы выбрали камеру! »)'? – 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() каждый раз.

На данный момент строка кода в самом верху этого ответа будет работать на вас. :)

Смежные вопросы