2015-07-15 2 views
1

У меня есть ящик для навигации с пользовательской панелью инструментов. Я пытаюсь получить доступ к textView на панели инструментов в Fragment и установить текст в фрагменте. Возможно ли это, если да, то как?Доступ к текстовому представлению панели инструментов из фрагмента в android

Вот toolbar.xml у меня есть:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/tools" 
android:id="@+id/toolbar" 
style="@style/ActionBar" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@color/backgroundcolor" 
android:minHeight="?attr/actionBarSize" 
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" > 

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:id="@+id/relativeLayoutID"> 

    <TextView 
     android:id="@+id/toolbar_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left|center" 
     android:layout_centerVertical="true" 
     android:text="@string/register_title" 
     android:textColor="@color/blackText" 
     android:textSize="@dimen/text_size_medium" /> 

    <ImageView 
     android:id="@+id/action_logo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_gravity="right|center" 
     android:contentDescription="@string/logo" 
     android:paddingRight="5dp" 
     android:src="@drawable/logoactionbar" /> 
</RelativeLayout> 

Я хочу, чтобы установить текст toolbar_title в соответствии с fargment я щелкнул. Как получить доступ к ним во Фрагменте.

Дайте мне знать!

Спасибо!

+0

Куда вы включили панель инструментов? Оттуда вы можете найти его в действии или фрагменте – Harry

+0

@ Харри: Можете ли вы привести пример? – TheDevMan

ответ

6

Пожалуйста, попробуйте этот

toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar); 
textToolHeader = (TextView) toolbar.findViewById(R.id.textToolHeader); 
textToolHeader.setText("Text which you want"); 

Надеется, что это полезно для вас.

+0

Спасибо большое, что это сработало, но как это может быть ссылка на панель инструментов, когда у меня нет в моем фрагменте XML? – TheDevMan

+0

Создайте обычную панель инструментов и используйте ее как общую –

0

сделать public textChanger() метод в деятельности

public class YourActiviy extends Activity { 

Toolbar toolbar; 
Textview text; 
textToolHeader.setText("Text which you want"); 

@Override 
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { 
    super.onCreate(savedInstanceState, persistentState); 
    toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar); 
    text = (TextView) toolbar.findViewById(R.id.text); 
} 

public void changeToolBarText(String txt){ 
    text.setText(txt); 
} 

}

и в вашем фрагменте использовать

((YourActiviy) getActivity()).changeToolBarText("what ever you want"); 

изменить эту TextView.

в качестве образца, в фрагменте;

public class test extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    ((YourActivity) getActivity()).changeToolBarText("what ever you want"); 

    return super.onCreateView(inflater, container, savedInstanceState); 
} 

}

0

Это в настоящее время работает для меня на данный момент. просто позвоните по телефону onCreateView:

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