gpt4 book ai didi

java - setTitle 不工作 Android

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:58 25 4
gpt4 key购买 nike

我创建了一个滑动选项卡 Activity ,我正在尝试动态更改应用栏的标题。但无论我做什么,它似乎都不起作用!这是我的 MainActivity.java:

public class MainActivity extends AppCompatActivity {


ViewPager mPager;
SlidingTabLayout mTabs;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


getSupportActionBar().setDisplayShowHomeEnabled(true);


mPager = (ViewPager) findViewById(R.id.pager);

mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));

mTabs = (SlidingTabLayout) findViewById(R.id.tabs);

mTabs.setCustomTabView(R.layout.custom_tab_view, R.id.tabText);

mTabs.setDistributeEvenly(true);

mTabs.setSelectedIndicatorColors(getResources().getColor(R.color.colorAccent));
mTabs.setBackgroundColor(getResources().getColor(R.color.colorPrimary));

mTabs.setViewPager(mPager);

}

class MyPagerAdapter extends FragmentPagerAdapter {

int tabIcons[] = {R.drawable.ic_events, R.drawable.ic_clients, R.drawable.ic_history};
String[] tabText = getResources().getStringArray(R.array.tabs);

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

@Override
public Fragment getItem(int position) {

switch (position){
case 0:
getSupportActionBar().setTitle("Events");
EventsFragment eventsFragment = EventsFragment.getInstance(position);
return eventsFragment;

case 1:
getSupportActionBar().setTitle("Clients");
ClientsFragment clientsFragment = ClientsFragment.getInstance(position);
return clientsFragment;

case 2:
getSupportActionBar().setTitle("History");
HistoryFragment historyFragment = HistoryFragment.getInstance(position);
return historyFragment;

default:
getSupportActionBar().setTitle("Events");
EventsFragment defaultFragment = EventsFragment.getInstance(position);
return defaultFragment;

}

}

@Override
public CharSequence getPageTitle(int position) {

Drawable drawable = getResources().getDrawable(tabIcons[position]);

drawable.setBounds(0,0,64,64);

ImageSpan imageSpan = new ImageSpan(drawable);

SpannableString spannableString = new SpannableString(" ");

spannableString.setSpan(imageSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

return spannableString;
}

@Override
public int getCount() {
return 3;
}
}

我还尝试使用以下方法在 onCreate 方法中设置应用栏的标题:

 getSupportActionBar().setTitle("Test");

这也不起作用。

我该如何解决这个问题?谢谢!

最佳答案

调用 MainActivity 对象的 setTitle 方法。

MainActivity 中调用:只需 setTitle(...)。从不同的类 (MyPagerAdapter) 调用:activity.setTitle(...)

activity 是对 MainActivity 对象的引用。您可以使用 getActivity(),它返回与 fragment 关联的 Activity 。

总而言之,使用 getActivity().setTitle(...); 以便在 fragment 中设置标题。

关于java - setTitle 不工作 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37471842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com