在我的Android片段的內部我有以下簡單的檢查,以確定我的應用程序是否運行在平板電腦上(平板電腦上有3個視圖打開,視圖2和3沒有看到一個電話,只有第一個被認爲是)上findViewById在不同的類中的靜態方法
boolean mDualPane;
View detailsFrame = getActivity().findViewById(R.id.content1);
mDualPane = detailsFrame != null && detailsFrame.getVisibility() == View.VISIBLE;
這個作品在片段本身很好,但我需要在許多片段完全相同的檢查,所以我想有它在我的「MiscMethods」類我用於多個類中的常用方法。現在,在我的課同鱈魚看起來像這樣:
public class MiscMethods{
public static boolean landscapeChecker(){
boolean mDualPane;
View detailsFrame = getActivity().findViewById(R.id.content1);
mDualPane = detailsFrame != null && detailsFrame.getVisibility() == View.VISIBLE;
return mDualPane;
}
}
getActivity(如果我刪除findViewById)是未定義的類型MiscMethods。
現在我有一個上下文中的應用程序類喜歡這裏
public static void ErrorToast(int errorCode) {
String errorString = null;
switch (errorCode) {
case 1:
errorString = App.getContext().getString(R.string.error_tooManyFieldsEmpty);
break;
case 2:
errorString = App.getContext().getString(R.string.error_featureComingSoon);
break;
case 3:
errorString = App.getContext().getString(R.string.error_SwitchBreak);
break;
default:
errorString="Wrong Error Code";
break;
}
Toast errormsg = Toast.makeText(App.getContext(), errorString, Toast.LENGTH_SHORT);
errormsg.setGravity(Gravity.CENTER, 0, 0);
errormsg.show();
}
但這App.getContext()也沒有幫助。
我該如何解決這個問題?
非常感謝!第一個解決方案完美地工作,雖然因爲它是碎片我需要landscapeChecker(getActivity());非常感謝 :) – Killerpixler