亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我在使用帶有片段的 RecyclerView 時不斷收到空引用錯誤

為什么我在使用帶有片段的 RecyclerView 時不斷收到空引用錯誤

料青山看我應如是 2022-07-20 10:34:12
我為我的應用程序使用片段。我還使用了一個導航抽屜,它通過抽屜中的按鈕打開片段。我試圖用它的適配器和數組列表為我的 recyclerview 顯示一些基本的圖像和文本。我遇到的問題是我不知道如何修改代碼以對我的片段使用 recyclerview,因為我看到的所有教程都不使用片段。以下是我的活動代碼:public class secondActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {private DrawerLayout drawer;private RecyclerView mRecyclerView;private RecyclerView.Adapter mAdapter;private RecyclerView.LayoutManager mLayoutManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_second);    ArrayList<exampleItemBooks> exampleList = new ArrayList<>();    exampleList.add(new exampleItemBooks(R.drawable.artofwar, "Line 1", "Line     2"));    exampleList.add(new exampleItemBooks(R.drawable.aristotle, "Line 3",     "Line 4"));    exampleList.add(new exampleItemBooks(R.drawable.caesarbook, "Line 5",     "Line 6"));    exampleList.add(new exampleItemBooks(R.drawable.platorepublic, "Line 7",     "Line 8"));    exampleList.add(new exampleItemBooks(R.drawable.senecaletters, "Line 9",     "Line 10"));    exampleList.add(new exampleItemBooks(R.drawable.thehistoryofmypeople,     "Line 11", "Line 12"));    exampleList.add(new exampleItemBooks(R.drawable.theprince, "Line 13",     "Line 14"));    exampleList.add(new exampleItemBooks(R.drawable.thritysixstrategems,     "Line 15", "Line 16"));    exampleList.add(new exampleItemBooks(R.drawable.medidations, "Line 17",     "Line 18"));    mRecyclerView = findViewById(R.id.recyclerViewBooks);    mRecyclerView.setHasFixedSize(false);    mLayoutManager = new LinearLayoutManager(this);    mAdapter = new exampleBooksAdapter(exampleList);    mRecyclerView.setLayoutManager(mLayoutManager);    mRecyclerView.setAdapter(mAdapter);    Toolbar toolbar = findViewById(R.id.toolbarMain);    setSupportActionBar(toolbar);
查看完整描述

1 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

您的代碼失敗,因為您的 Activity 正在嘗試訪問RecyclerViewFragment 布局的一部分,并且您的 Fragment 布局在您調用后無法立即使用setContentView()(即使在您replace()操作之后,它也只能異步使用,因為您使用commit()而不是commitNow())。

片段應該(盡可能)是自包含的。這意味著如果您的 Fragment 擁有RecyclerView,它應該負責將數據加載到其中:而不是您的 Activity。

您應該將 Activity 中與 Fragment 接觸的所有代碼移至RecyclerViewFragment - 理想情況下,移動到諸如 之類的方法中onViewCreated(),該方法使您可以訪問已膨脹的視圖,onCreateView()并且是調用findViewById()和獲取RecyclerView.


查看完整回答
反對 回復 2022-07-20
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號