爲什麼this
在下面的片段中給我一個錯誤?「this」給我一個錯誤片段
這是我的代碼:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, spinnerArray);
爲什麼this
在下面的片段中給我一個錯誤?「this」給我一個錯誤片段
這是我的代碼:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, spinnerArray);
更換this
與this.getContext()
,甚至只是簡單地getContext()
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(),
android.R.layout.simple_spinner_item, spinnerArray);
其原因是在於一個ArrayAdapter
對象的構造是這樣的,
從https://developer.android.com/reference/android/widget/ArrayAdapter.html ,
ArrayAdapter(Context context, int resource, T[] objects)
或
ArrayAdapter(Context context, int resource, List<T> objects)
了可能發生的事情之前是該代碼行是班上最有可能不是Context
類型;因此,不能單獨使用this
作爲構造ArrayAdapter的參數。如果getContext()
不起作用,那麼我建議嘗試getActivity()
或getApplicationContext()
以及。
您可以嘗試getActivity().getApplicationContext()
而不是僅使用this
的片段。
僅當片段是嵌套類 –
試試這個:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getActivity(), android.R.layout.simple_spinner_item, spinnerArray);
getContext()
僅在API 23增加了,應當只有少數設備的工作(因爲版本的Android M仍然沒有一個巨大的市場份額)。
getActivity()
被添加到API 11,它不被棄用。所以,你可以使用它。
使用getActivity()
它返回片段與之關聯的活動的上下文。
所以,你的代碼變得
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, spinnerArray);`]
是類,這行代碼的類型'Context'因爲如果沒有,那麼你不能只在任何情況下使用'this' –
,這是錯誤?請更具體。 – Lino
活動是一個上下文對象。碎片不是。 –