如何获取当前activity的title?
获取的逻辑总共可以分为三步
第一步,通过拿到的activity对象,调用该activity对象的getTitle()方法获取当前activity的title
第二步,有些用户会使用ActionBar或者ToolBar,所以我们还需要获取这两个控件的title,如果获取到,用这个title替换第一步获取到的title
第三步,经过上面两步,如果还没有获取到title,直接获取在Manifest文件中声明activity时通过android:label属性设置的值
下面为一个简单的方法用来完成上面的三步
public static string getActivityTitle(Activity activity){
String activityTitle=null;
//第一步获取activity的title
activityTitle=activity.getTitle().toString();
if(Build.VERSION.SDK_INT>=11){
//第二步获取toolbar和actionbar的title
String toolbarTitle=getToolBarTitle(activity);//该方法未实现,主要是获取toolbar和actionbar的title
if(!TextUtils.isEmpty(toolbarTitle)){
activityTitle=toolbarTitle;
}
}
//第三步获取在Manifest中注册的title
if(TextUtils.isEmpty(activityTitle)){
PackageManager packageManager=activity.getPackageManager();
if(packageManager !=null){
ActivityInfo activityInfo=packageManager.getActivityInfo(activity.getCompoenentName(),0);
if(activityInfo!=null){
activityTitle=activityInfo.loadLable(packageManager).toString();
}
}
}
return activityTitle;
}
|