2016-10-21 1 views
0

У меня есть три разных вида деятельности, каждый из которых переключается на общую деятельность через Intent, с незначительными изменениями в образе ребенка или переключается на Деятельность. Я хочу изменить текст TextView, так что каждый раз, когда дочернее действие отображает другой текст, основанный на том, с какой активности он был переключен. Я попытался с помощью этого:Android. Переключитесь на активность с использованием Intent, а затем измените текст TextView на переключаемую активность?

Button startSendingLocation = (Button) findViewById(R.id.wmb_start_sending_button); 
     startSendingLocation.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent(view.getContext(), ll_wmb_Map.class); 
       startActivity(intent); 

       TextView bmo_map_toolbar_title = (TextView) findViewById(R.id.wmb_toolbar_title); 
       bmo_map_toolbar_title.setText(R.string.ll_bmo_toolbar_title); 

      } 
     }); 

Но это не обновляет текст в TextView. Я делаю это неправильно?

  1. Должен ли я создать три разных мероприятия с их собственными макетами для достижения этого?
  2. Смогу ли я добавить или обновить несколько видов, иначе, на основе активности, с которой я переключаюсь?

Я думал, что переход к одной и той же деятельности через Intent будет хорошей идеей для кодового повторного использования и некоторые повышения эффективности как ребенок активность делает использование MapFragment во всех трех случаях.

ll_wmb_Map.class: Распространенное деятельность, которая переключаясь на, используя Intent
wmb_toolbar_title: Идентификатор TextView Я хочу изменить
ll_bmo_toolbar_title: Текст Я хочу установить в TextView

+0

is textView - это единственное изменение, которое необходимо изменить? – Archana

+0

'TextView', а затем установите видимость некоторых кнопок для выключения и вместо этого отобразите другой« TextView ». – Yankee

+1

Вы не можете изменять представления из разных видов деятельности. Вы устанавливаете представление содержимого в onCreate для каждой операции. Кажется странным, что вы не использовали бы общий фрагмент, прикрепленный к одному действию, если вы говорите о повторном использовании кода с каким-то обратным вызовом для обновления текстового представления. –

ответ

1

Fine, если вы просто хотите включить/отключить представление и изменить контент textview, вам просто нужно использовать функции включения и отключения в onclick-прослушивателях, а не повторять одно и то же действие снова и снова.

startSendingLocation.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
     bmo_map_toolbar_title.setText(R.string.ll_bmo_toolbar_title); 

     //enable/disable the views 
     } 
    }); 
+0

Да, я собирался сделать то же самое, но, как заметил Марк, я не могу сделать никаких изменения в Представлениях из другой Деятельности. Но спасибо за помощь Арчана. – Yankee

+0

Я думаю, что нет необходимости использовать разные виды деятельности. – Archana

+0

Но таким образом он даже не переключается на новую активность. Какая польза от изменения TextView, когда я даже не могу переключиться на эту активность? – Yankee