所以我的问题是,当用户点击该联系人时,会将我带到另一个片段,但操作栏上的标题仍然是最喜欢的标题,而不是新标题,如何更改该标题?
我已经尝试在点击方法上使用setTitle
,但仍无效。
答案 0 :(得分:55)
在您的活动中:
public void setActionBarTitle(String title) {
getSupportActionBar().setTitle(title);
}
在你的片段中(你可以将它放在onCreate或onResume上):
public void onResume(){
super.onResume();
// Set title bar
((MainFragmentActivity) getActivity())
.setActionBarTitle("Your title");
}
答案 1 :(得分:20)
在你的片段中
cmddb.CommandText = "SELECT cover FROM movies Where nr = '" + x + "'";
//dbreader.Read(); // is it wrong, maybe?
while (dbreader.Read())
答案 2 :(得分:2)
Em Kotlin说,使用onCreateView,onStart和onResume。
Storage.get("TestJson.json", { download: true, customPrefix: customPrefix })
.then(result => console.log(JSON.parse(result.Body.toString())))
.catch(err => console.log(err));
片段片段的可喜替代品。
override fun onStart() {
super.onStart()
(activity as? AppCompatActivity)?.supportActionBar?.title = "Título".
}
Chamada dafunçãodeextensãodentro do Fragment
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
fun Fragment.setTitle(title: String) {
(activity as? AppCompatActivity)?.supportActionBar?.title = title
}
答案 3 :(得分:0)
如果您正在使用Android Jetpack的导航组件。操作栏读取片段名称的Label属性。不知道这是否是正确的解决方法,但是如果您在“导航编辑器”中更改“标签”文本,将由托管片段的“活动”中设置的supportActionBar读取该文本。
答案 4 :(得分:0)
NOT_A_PROGRAMMER的答案是正确的,但是当您返回上一个活动或片段时,标题保持不变。
这是我的解决方案。
@Override
public void onStop() {
super.onStop();
((MPOSTransactionActivity) getActivity()).setActionBarTitle(getString(//NAME));
}
答案 5 :(得分:0)
供Java使用
更改工具栏的标题
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
((MainActivity) getActivity()).getSupportActionBar().setTitle("hello word");
View root = inflater.inflate(R.layout.fragment_home, container, false);
return root;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}