-1
<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:layout_weight="1" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     app:title="@string/app_name"> 

    </android.support.v7.widget.Toolbar> 

위의 코드는 activity_main.xml의 하위 활동 인 actitvity_main2.xml에있는 코드입니다.android에서 Tabbed Child Activity의 제목을 변경하고 싶습니다.

주 활동에서 Main2Acitivty로 전달할 때이 하위 활동의 ​​제목을 변경하고 싶습니다. 주요 애플리케이션 (예 : 주식)의 제목이있는 사진입니다.

This is the picture which has the title of the main application(i.e. Stocks)

나는 Main2Activity가 (당신이 이미지에서 볼 수 있듯이이 활동은 탭보기가 포함)로드 할 때 뭔가 다른 제목을 변경하고 싶습니다. getActionBar().setTitle(<name to put on title>);을 사용하려고 시도했지만 setTitle(<name to put in the title>)도 사용했지만 아무 것도 작동하지 않았습니다.

내가 Android를 처음 사용하는 경우 도움을주십시오.

답변

1

스타일을 정돈하십시오.SecondActivity에 첫 번째 활동

Intent intent = new Intent(FirstActivity.this, MainActivity.class); 
intent.putExtra("TitleBarName","FirstActivity"); 
startActivity(intent); 

에서 코드 아래 XML 파일

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

전화

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    String titleName = getIntent().getStringExtra("TitleBarName"); 
    getSupportActionBar().setTitle(titleName); 

및 매니페스트 파일을 체크해야합니다.

당신이 도구 모음을 사용하는 경우

는 당신은 내가이 문제가 해결되기를 바랍니다 매니페스트 파일

<activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
    </activity> 

에서 그 활동이 테마를 넣어해야합니다.

+1

마침내 많은 사람에게 고마워했습니다. 너는 그걸 해결할 수있는 유일한 사람이야. @chetanPatel – AlgoMan

0

모든 코드를 제공합니다.

MainActivity.java

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.design.widget.TabLayout; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 

import java.util.ArrayList; 
import java.util.List; 

public class MainActivity extends AppCompatActivity { 

    private ViewPager mViewPager; 
    private SectionsPagerAdapter adapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 


     // Set up the ViewPager with the sections adapter. 
     mViewPager = (ViewPager) findViewById(R.id.container); 
     setupViewPager(mViewPager); 

     TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(mViewPager);   

// This listener helps for changing name on title when you change page through slide or click on tab 
     mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
       if(adapter != null){ 
        getSupportActionBar().setTitle(adapter.getPageTitle(position)); 
       } 
      } 

      @Override 
      public void onPageSelected(int position) { 

      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 

      } 
     }); 
    }  

    private void setupViewPager(ViewPager viewPager) { 
     adapter = new SectionsPagerAdapter(getSupportFragmentManager()); 
     adapter.addFragment(new TabOne(), "ONE"); 
     adapter.addFragment(new TabSecond(), "TWO"); 
     adapter.addFragment(new TabThird(), "THREE"); 
     viewPager.setAdapter(adapter); 
    } 


    public class SectionsPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public SectionsPagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     public void addFragment(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 
} 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.taxsmart.testapplication.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay"/> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

</android.support.design.widget.CoordinatorLayout> 

은 Gradle을 파일에 종속성을 추가

compile 'com.android.support:appcompat-v7:26.1.0' 
compile 'com.android.support.constraint:constraint-layout:1.0.2' 
compile 'com.android.support:design:26.1.0' 

세 조각의 탭이 있습니다. 모든 조각의 XML 파일

tabone.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="TabOne" 
     android:gravity="center"/> 

</LinearLayout> 

tabsecond.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="TabSecond" 
     android:gravity="center"/> 

</LinearLayout> 

tabthird.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="TabThird" 
     android:gravity="center"/> 

</LinearLayout> 
,

모든 조각 자바 파일 TabOne.java

import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class TabOne extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.tabone, container, false); 
     return rootView; 
    } 
} 

TabSecond.java

import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 


public class TabSecond extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.tabsecond, container, false); 
     return rootView; 
    } 
} 

TabThird.java

import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class TabThird extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.tabthird, container, false); 
     return rootView; 
    } 
} 

문제가 해결되기를 바랍니다.

+0

이미 가져온 문자열 인 제목을 변경하고 싶습니다. @chetanpatel – AlgoMan

+0

도구 모음의 제목을 그 값으로 변경하기 위해해야 ​​할 것보다 이미 하나의 값이 있다고 생각하십니까? @Chetan – AlgoMan

+0

@webcode 의심의 여지가 없도록하십시오. 툴바에서 제목을 설정하고 제목이 탭 제목이 될까요? –