我已經收窄到三行Java代碼:findViewById被充氣後返回null
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
View view = layoutInflater.inflate(R.layout.item_tile, parent, false);
System.out.println(view.findViewById(R.id.text_view));
return new ViewHolder(view);
}
下面是相應的XML代碼:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text_view"/>
</LinearLayout>
這將打印空。爲什麼它打印空?爲什麼找不到文本視圖?
是的,這個XML文件被命名爲「item_tile.xml」,不是沒有另一個命名爲相同的東西。我已經嘗試創建新文件並將此代碼扔在那裏,但我仍然有這個完全相同的錯誤。爲什麼findViewById(...)失敗?
首先,我會檢查你的進口。確保你不會意外地靜態導入'android.R'。然後我會說檢查你的'build.gradle'並確保你的源代碼集沒有改變。接下來,我將檢查視圖是否尚未膨脹。只要做'Log.d(TAG,「View:」+ view);'看看出現了什麼。最後我會說你的項目有點損壞。這是一個難以解決的問題。 –
通常,您在ViewHolder構造函數內執行'findViewById',但是,如果您確定正在充氣正確的佈局,那很奇怪。 –
@ChadBingham我不認爲'android.R.id.text_view'是一個有效的資源標識符。 –