recyclerviewアダプターは接続されていません。レイアウトをスキップ


241

RecyclerView私のコードに実装しただけで、を置き換えListViewます。

すべてが正常に動作します。データが表示されます。

しかし、エラーメッセージが記録されています。

15:25:53.476 E/RecyclerView: No adapter attached; skipping layout

15:25:53.655 E/RecyclerView: No adapter attached; skipping layout

次のコードの場合:

ArtistArrayAdapter adapter = new ArtistArrayAdapter(this, artists);
recyclerView = (RecyclerView) findViewById(R.id.cardList);
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));

ご覧のとおり、のアダプターを取り付けましたRecyclerView。では、なぜこのエラーが発生し続けるのですか?

同じ問題に関連する他の質問を読みましたが、どれも役に立ちません。


アーティストは空ですか?setAdapterとsetLayoutManagerを切り替えるとどうなりますか?
Blackbelt 2015年

RecyclerView.Adapterを使用する必要があります
Octopus38

12
ウィンドウに接続された直後にrecyclerviewを初期化していない場合に表示されることがあります。
yigit 2015年

1
@yigit改造がデータをダウンロードするのを待っており、それが完了したら、指定されたコードが実行されます!
2015年

3
このエラーはどのくらい深刻ですか?これは無視できますか?とにかく、エラーを回避するためにsetAdapter(null)を使用します。
priyankvex 16

回答:


243

これらのステートメントを「メイン」スレッド(たとえば、onCreate()メソッド内)から呼び出していることを確認できますか。「遅延」メソッドから同じステートメントを呼び出すとすぐに。私の場合はResultCallback、同じメッセージが表示されます。

Fragmentでは、ResultCallbackメソッド内から以下のコードを呼び出すと、同じメッセージが生成されます。onConnected()アプリ内のメソッドにコードを移動した後、メッセージが消えました...

LinearLayoutManager llm = new LinearLayoutManager(this);
llm.setOrientation(LinearLayoutManager.VERTICAL);
list.setLayoutManager(llm);
list.setAdapter( adapter );

9
しかし、私は最初にデータをダウンロードしてから表示する必要があります!
2015年

93
最初に空のアダプターを設定し、データが揃ったらすぐに更新します(これが私にとってはうまくいきます)。
Peter

3
それがyigitの提案です!
2015年

13
@equitharn最初に空のアダプターを設定してから、データがダウンロードされ、mAdapter.notifyDataSetChanged()が呼び出されます。
DomonLee

2
この解決策は私を助けていません。実際、このスレッドの解決策は私を助けていません。誰かが私のケースをここで
Pulak

41

コードで2つのことを修正するまで、同じ2つのエラーメッセージが表示されていました。

(1)デフォルトでは、メソッドを実装すると、以下RecyclerView.Adapterが生成されます。

@Override
public int getItemCount() {
    return 0;
}

次のようにコードを更新してください。

@Override
public int getItemCount() {
    return artists.size();
}

明らかにアイテムがゼロの場合、画面に表示されるアイテムはゼロになります。

(2)上の答えに示されているように、これを実行していませんでした:CardView layout_width = "match_parent"が親のRecyclerViewの幅と一致しません

//correct
LayoutInflater.from(parent.getContext())
            .inflate(R.layout.card_listitem, parent, false);

//incorrect (what I had)
LayoutInflater.from(parent.getContext())
        .inflate(R.layout.card_listitem,null);

(3)編集:ボーナス:また、次のように設定してくださいRecyclerView

<android.support.v7.widget.RecyclerView
    android:id="@+id/RecyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />

このようではありません:

<view
    android:id="@+id/RecyclerView"
    class="android.support.v7.widget.RecyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

後者の方法を使用したチュートリアルを見てきました。それが動作している間、私はそれもこのエラーを生成すると思います。


1
私のgetItemCount()は次のようにpublic int getItemCount() { return artists == null ? 0 : artists.size(); }なり、LayoutInflaterView itemView = LayoutInflater. from(parent.getContext()).inflate(R.layout.fragment_listitem, parent, false);
2015

これは私にとってはうまくいきます:@Override public int getItemCount(){return Artists.size(); }
AstonCheah 2017年

4
ああ、神様。SOに戻った瞬間、すでに賛成した回答を見て、同じ愚かなことをしていたことに気づきます。@Microに再度感謝します。
androidevil 2017

20

私はあなたと同じ状況にあり、表示は問題ありませんが、エラーが場所に表示されます。それが私の解決策です:(1)RecyclerViewを初期化し、アダプターをON CREATE()でバインドします

RecyclerView mRecycler = (RecyclerView) this.findViewById(R.id.yourid);
mRecycler.setAdapter(adapter);

(2)データを取得したらnotifyDataStateChangedを呼び出します

adapter.notifyDataStateChanged();

recyclerViewのソースコードには、データの状態をチェックする別のスレッドがあります。

public RecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    this.mObserver = new RecyclerView.RecyclerViewDataObserver(null);
    this.mRecycler = new RecyclerView.Recycler();
    this.mUpdateChildViewsRunnable = new Runnable() {
        public void run() {
            if(RecyclerView.this.mFirstLayoutComplete) {
                if(RecyclerView.this.mDataSetHasChangedAfterLayout) {
                    TraceCompat.beginSection("RV FullInvalidate");
                    RecyclerView.this.dispatchLayout();
                    TraceCompat.endSection();
                } else if(RecyclerView.this.mAdapterHelper.hasPendingUpdates()) {
                    TraceCompat.beginSection("RV PartialInvalidate");
                    RecyclerView.this.eatRequestLayout();
                    RecyclerView.this.mAdapterHelper.preProcess();
                    if(!RecyclerView.this.mLayoutRequestEaten) {
                        RecyclerView.this.rebindUpdatedViewHolders();
                    }

                    RecyclerView.this.resumeRequestLayout(true);
                    TraceCompat.endSection();
                }

            }
        }
    };

dispatchLayout()には、エラーがあることがわかります。

void dispatchLayout() {
    if(this.mAdapter == null) {
        Log.e("RecyclerView", "No adapter attached; skipping layout");
    } else if(this.mLayout == null) {
        Log.e("RecyclerView", "No layout manager attached; skipping layout");
    } else {

11

私はこの問題を抱えています、数回の問題はScrollViewオブジェクトにrecycleViewを置くことです

実装確認後の理由は以下のようです。RecyclerViewがScrollViewに入れられる場合、測定ステップ中の高さは指定されていません(ScrollViewは任意の高さを許可するため)。その結果、実装ごとの最小の高さに等しく、明らかにゼロになります。

これを修正するためのオプションがいくつかあります。

  1. 特定の高さをRecyclerViewに設定します
  2. ScrollView.fillViewportをtrueに設定します
  3. または、ScrollViewの外にRecyclerViewを保持します。私の意見では、これは断然最良の選択肢です。RecyclerViewの高さが制限されていない場合(これがScrollViewに配置される場合)、すべてのアダプタのビューは垂直方向に十分な場所があり、一度に作成されます。RecyclerViewの目的を少し損なうビューのリサイクルはもうありません。

(フォローすることもできますandroid.support.v4.widget.NestedScrollView


trueにScrollView.fillViewportを設定すると、おかげでたくさん、私の問題を解決
エマン

10

1)何もしないViewHolderを作成します:)

// SampleHolder.java
public class SampleHolder extends RecyclerView.ViewHolder {
    public SampleHolder(View itemView) {
        super(itemView);
    }
}

2)何もしないRecyclerViewを再度作成します:)

// SampleRecycler.java
public class SampleRecycler extends RecyclerView.Adapter<SampleHolder> {
    @Override
    public SampleHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return null;
    }

    @Override
    public void onBindViewHolder(SampleHolder holder, int position) {

    }

    @Override
    public int getItemCount() {
        return 0;
    }
}

3)実際のリサイクル業者の準備ができていない場合は、以下のサンプルを使用してください。

RecyclerView myRecycler = (RecyclerView) findViewById(R.id.recycler_id);
myRecycler.setLayoutManager(new LinearLayoutManager(this));
myRecycler.setAdapter(new SampleRecycler());

これは最善の解決策ではありませんが、機能します!これがお役に立てば幸いです。


こんにちは、同じエラーが発生し、リサイクラーが空のアダプターを渡す準備ができていないかどうかを確認する必要がある場所と、リサイクラーが準備ができているかどうかを確認できる場所(データと共にアダプターを渡す)がわかりません
James

これは素晴らしいです、これはドラッグアンドドロップスタイルの要点ですgist.github.com/anonymous/bcf027945f08f40601090c55d6048e21
nmu

9

これは、作成フェーズでアダプターを設定していないときに発生します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    ....
}

public void onResume() {
    super.onResume();
    mRecyclerView.setAdapter(mAdapter);
    ....
}

アダプターの設定を空のデータを使用してonCreateに移動し、データ呼び出しがある場合:

mAdapter.notifyDataSetChanged();

onCreateメソッド内のカスタムアダプターコンストラクターでデータを設定してください
Mohit Singh

4

アダプターでこのメソッドを呼び出すのに失敗したかどうかを確認してください

@Override
public int getItemCount() {
    return list.size();
}

3

RecyclerViewのレイアウトマネージャを次のように設定してください。

mRecyclerView.setLayoutManager(new LinearLayoutManager(context));

の代わりにLinearLayoutManager他のレイアウトマネージャーも使用できます。


3

同じエラーが発生しましたが、レトロフィットなどを使用して私のようなデータを待っている場合は、これを修正しました

Oncreateの前に置く

private ArtistArrayAdapter adapter;
private RecyclerView recyclerView;

Oncreateに入れます

 recyclerView = (RecyclerView) findViewById(R.id.cardList);
 recyclerView.setHasFixedSize(true);
 recyclerView.setLayoutManager(new LinearLayoutManager(this));
 adapter = new ArtistArrayAdapter( artists , R.layout.list_item ,getApplicationContext());
 recyclerView.setAdapter(adapter);

データを受け取ったら

adapter = new ArtistArrayAdapter( artists , R.layout.list_item ,getApplicationContext());
recyclerView.setAdapter(adapter);

次に、ArtistArrayAdapterクラスに移動して、配列が空であるかnullの場合にこれを行うと、GetItemCountはアーティスト配列のサイズにならない場合は0を返します。

@Override
public int getItemCount() {

    int a ;

    if(artists != null && !artists.isEmpty()) {

        a = artists.size();
    }
    else {

        a = 0;

     }

   return a;
}


2

これは、実際のインフレートされたレイアウトが、recyclerViewの検索中に参照されるレイアウトとは異なるために発生します。デフォルトでは、フラグメントを作成すると、onCreateViewメソッドは次のようになります。 return inflater.inflate(R.layout.<related layout>,container.false);

その代わりに、ビューを個別に作成し、それを使用してrecyclerViewを参照します View view= inflater.inflate(R.layout.<related layout>,container.false); recyclerview=view.findViewById(R.id.<recyclerView ID>); return view;


2

最初にアダプターを初期化します

public void initializeComments(){
    comments = new ArrayList<>();

    comments_myRecyclerView = (RecyclerView) findViewById(R.id.comments_recycler);
    comments_mLayoutManager = new LinearLayoutManager(myContext);
    comments_myRecyclerView.setLayoutManager(comments_mLayoutManager);

    updateComments();
    getCommentsData();

}

public void updateComments(){

    comments_mAdapter = new CommentsAdapter(comments, myContext);
    comments_myRecyclerView.setAdapter(comments_mAdapter);
}

データセットセットに変更があった場合は、updateCommentsメソッドを呼び出します。


2

フラグメントRecyclerView内でを使用して他のビューからインフレートする場合:フラグメントビュー全体をインフレートするときは、をルートビューにバインドしてください。RecyclerView

私は接続し、アダプターのすべてを正しく行っていましたが、バインディングを実行したことはありません。@Prateek Agarwalによるこの答えは私にはそれをすべて持っていますが、ここではより詳細です。

コトリン

    override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {

    val rootView =  inflater?.inflate(R.layout.fragment_layout, container, false)
    recyclerView = rootView?.findViewById(R.id.recycler_view_id)
    // rest of my stuff
    recyclerView?.setHasFixedSize(true)
    recyclerView?.layoutManager = viewManager
    recyclerView?.adapter = viewAdapter
    // return the root view
    return rootView
}

ジャワ

  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View rootView= inflater.inflate(R.layout.fragment_layout,container,false);
    recyclerview= rootView.findViewById(R.id.recycler_view_id);
    return rootView;
}

1
ArtistArrayAdapter adapter = new ArtistArrayAdapter(this, artists);
recyclerView = (RecyclerView) findViewById(R.id.cardList);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);

上記のコードをこれに置き換えるだけで動作します。間違ったことは、レイアウトマネージャーを呼び出す前にsetAdapter(adapter)を呼び出したことです。


1

これは実際に発生している単純なエラーであり、この中でコードを実行する必要はありません。 このエラーは、アクティビティで使用される誤ったレイアウトファイルが原因で発生します。IDEによって、アクティビティのデフォルトレイアウトになるレイアウトのレイアウトv21が自動的に作成されました。 私が古いレイアウトファイルで行ったすべてのコードと新しいレイアウトファイルでxmlコードがほとんどなかったため、そのエラーが発生しました。

解決策:古いレイアウトのすべてのコードをコピーしてレイアウトv 21に貼り付けます


1

私の場合、アダプタをonLocationChanged()コールバック内に設定し、エミュレータでデバッグしていました。場所の変更を検出しなかったため、起動しませんでした。エミュレータの拡張コントロールで手動で設定すると、期待どおりに機能しました。


1

このエラーを解決しました。レイアウトマネージャーを追加し、空のアダプターを追加するだけです。

このコードのように:

myRecyclerView.setLayoutManager(...//your layout manager);
        myRecyclerView.setAdapter(new RecyclerView.Adapter() {
            @Override
            public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                return null;
            }

            @Override
            public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

            }

            @Override
            public int getItemCount() {
                return 0;
            }
        });
//other code's 
// and for change you can use if(mrecyclerview.getadapter != speacialadapter){
//replice your adapter
//}

1
私は初心者ユーザーのためにそれをします
mehdi janbarari 2016年

1

以下を追加するだけです RecyclerView

app:layoutManager="android.support.v7.widget.LinearLayoutManager"

例:

   <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical"
        app:layoutManager="android.support.v7.widget.LinearLayoutManager"
        app:layout_constraintBottom_toTopOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

    </android.support.v7.widget.RecyclerView>

1

このエラーが発生したため、解決策が見つかるまでしばらく修正を試みました。

私はプライベートメソッドbuildRecyclerViewを作成し、それを2回呼び出しました。最初はonCreateViewで、次にコールバック(APIからデータをフェッチする)の後で呼び出しました。これは私のフラグメントのbuildRecyclerViewメソッドです:

private void buildRecyclerView(View v) {
        mRecyclerView = v.findViewById(R.id.recycler_view_loan);
        mLayoutManager = new LinearLayoutManager(getActivity());
        ((LinearLayoutManager) mLayoutManager).setOrientation(LinearLayoutManager.VERTICAL);
        mRecyclerView.setLayoutManager(mLayoutManager);
        mAdapter = new LoanAdapter(mExampleList);
        mRecyclerView.setLayoutManager(mLayoutManager);
        mRecyclerView.setAdapter(mAdapter);
}

さらに、on-Create-Viewではリストがnullであり、エラーが発生するため、アダプターのget-Item-Countメソッドを変更する必要があります。したがって、私のget-Item-Countは次のとおりです。

@Override
    public int getItemCount() {
        try {
            return mLoanList.size();
        } catch (Exception ex){return 0;}

    }

0

私の状況では、それはViewHolderクラスにある忘れられたコンポーネントでしたが、レイアウトファイルにはありません


0

同じ問題があり、onCreateメソッドで2つを設定する代わりに、ソースからデータを取得した後、LayoutManage rとアダプターの両方を設定していることに気付きました。

salesAdapter = new SalesAdapter(this,ordersList);
        salesView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
        salesView.setAdapter(salesAdapter);

次に、データ変更についてアダプターに通知しました

               //get the Orders
                Orders orders;
                JSONArray ordersArray = jObj.getJSONArray("orders");
                    for (int i = 0; i < ordersArray.length() ; i++) {
                        JSONObject orderItem = ordersArray.getJSONObject(i);
                        //populate the Order model

                        orders = new Orders(
                                orderItem.getString("order_id"),
                                orderItem.getString("customer"),
                                orderItem.getString("date_added"),
                                orderItem.getString("total"));
                        ordersList.add(i,orders);
                        salesAdapter.notifyDataSetChanged();
                    }

0

あなたがいずれかを追加していないため、この問題があるLayoutManager、あなたのためにRecyclerView

別の理由は、NonUIThreadでこのコードを呼び出しているためです。UIThreadでこの呼び出しを必ず呼び出してください。

解決策は、あなたが追加する必要があるLayoutManagerためにRecyclerViewあなたの前に、setAdapterUIスレッドで。

recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));

LayoutManagerの設定を遅らせる必要がある場合は、コールバックメソッドからこれを実行する必要があります。
ievgen 2018

0

私の問題は私のリサイクル業者のビューがこのように見えることでした

        <android.support.v7.widget.RecyclerView
        android:id="@+id/chatview"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent">
    </android.support.v7.widget.RecyclerView>

こんな感じだったら

       <android.support.v7.widget.RecyclerView
        android:id="@+id/chatview"
        android:layout_width="395dp"
        android:layout_height="525dp"
        android:layout_marginTop="52dp"
        app:layout_constraintTop_toTopOf="parent"
        tools:layout_editor_absoluteX="8dp"></android.support.v7.widget.RecyclerView>
</android.support.constraint.ConstraintLayout>

0

あなたにはRecyclerViewアダプタクラス、例えばMyRecyclerViewAdapter、以下のparamsを持つコンストラクタを作ります。

MyRecyclerViewAdapter(Context context, List<String> data) {
    this.mInflater = LayoutInflater.from(context); // <-- This is the line most people include me miss
    this.mData = data;
}

mDataアダプターに渡すデータです。渡すデータがない場合はオプションです。 作成しmInflaterLayoutInflaterオブジェクトでOnCreateViewHolderあり、アダプターの機能で使用します。

この後、MainActivityまたはメイン/ UIスレッドの適切な場所にアダプターを適切に接続します。

MyRecyclerViewAdapter recyclerAdapter;
OurDataStuff mData;

    ....
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Like this:

        RecyclerView recyclerView = findViewById(R.id.recyclerView);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerAdapter = new RecyclerAdapter(this, mData); //this, is the context. mData is the data you want to pass if you have any
        recyclerView.setAdapter(recyclerAdapter);
    }
   ....

0

初期化された空のリストとアダプタを下部に設定し、結果がフェッチされたときにnotifyDataSetChangedを呼び出すことで解決しました。

    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
    recyclerviewItems.setLayoutManager(linearLayoutManager);
    someAdapter = new SomeAdapter(getContext(),feedList);
    recyclerviewItems.setAdapter(someAdapter);

0

この問題で16分の人生を失ったので、この信じられないほど恥ずかしい間違いを認めます。私はバターナイフを使用しており、このフラグメントのonCreateViewでビューをバインドしています。

なぜlayoutmanagerがないのかを理解するのに長い時間がかかりましたが、明らかにビューが挿入されるため、実際にはnullにはならず、リサイクラーがnullになることはありません。

@BindView(R.id.recycler_view)
RecyclerView recyclerView;

    @Override
public View onCreateView(......) {
    View v = ...;
    ButterKnife.bind(this, v);
    setUpRecycler()
 }

public void setUpRecycler(Data data)
   if (recyclerView == null) {
 /*very silly because this will never happen*/
       LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
       //more setup
       //...
    }
    recyclerView.setAdapter(new XAdapter(data));
}

このような問題が発生している場合は、ビューをトレースして次のようなものを使用してください uiautomatorviewer


0

答えは多くありませんが、コードが正しい場合でも同じ問題が発生していました。時には、それは単に最も単純なmakeです。この場合、<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />同じエラーを再現するマニフェストからOPのエラーが欠落している可能性もあります。


0

私の場合は、LinearLayoutにRecyclerViewを埋め込んだことが原因で起こりました。

以前は、次のように1つのルートRecyclerViewのみを含むレイアウトファイルがありました

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:listitem="@layout/fragment_products"

    android:name="Products.ProductsFragment"
    app:layoutManager="LinearLayoutManager"
    tools:context=".Products.ProductsFragment"

    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"/>

問題は分離された3行にあると思います。とにかく、それは単純な問題だと思います。明日はそれに取り掛かります。このスレッドを忘れる前に、見つけたものを書くべきだと思いました。


0

エラーをググるこのスレッドに出会ったので、さらに別の答えを追加します。私は初期化しようとしてPreferenceFragmentCompatいましたが、次のonCreatePreferencesように設定XMLをインフレートするのを忘れていました。

class SettingsFragment : PreferenceFragmentCompat() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val inflater = LayoutInflater.from(context)
        inflater.inflate(R.layout.fragment_settings, null)
    }

    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        // Missing this line here:
        //   setPreferencesFromResource(R.xml.settings, rootKey)
    }
}

内部PreferenceFragmentCompatで使用する必要があることに気づくまで、エラーは謎でしたRecyclerView


0

あなたが作成段階の間にアダプタを設定していないときに、//それが起こる:呼び出しがnotifyDataSetChanged()APIレスポンスが取得されたときにその作業を

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);


        magazineAdapter = new MagazineAdapter(getContext(), null, this );
        newClipRecyclerView.setAdapter(magazineAdapter);
        magazineAdapter.notifyDataSetChanged();

       APICall();
}

public void APICall() {
    if(Response.isSuccessfull()){
    mRecyclerView.setAdapter(mAdapter);
   }
}
Just move setting the adapter into onCreate with an empty data and when you have the data call:

mAdapter.notifyDataSetChanged();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.