0
最初は貧しい私の英語を申し訳ありません。 私はAndroid RecyclerViewで動作しています。私のアクティビティから、データのリクエストをサーバーに送信し、onCreateメソッドのsendRequestForHistory()メソッドを呼び出すことによって、サーバーからレスポンスを取得します。 sendRequestForHistory()を呼び出してからデータアダプタを初期化しますが、ここではArrayListは空です。 sendRequestForHistory()メソッドでは、サーバからデータを取得し、ArrayListに追加します。このような私のコード。Android RecyclerViewアダプタが初期化されていません
public class HistoryActivity extends AppCompatActivity {
private Toolbar toolbar;
private ProgressDialog PD;
private RecyclerView recyclerView;
private HistoryAdapter historyAdapter;
private Boolean isInternetPresent = false;
private ConnectionDetector cd;
private TextView tvEmptyView;
private ArrayList<ItemHistory> itemHistories;
protected Handler handler;
private LinearLayoutManager linearLayoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
dbHelper= new DatabaseHelper(this);
handler = new Handler();
itemHistories = new ArrayList<ItemHistory>();
toolbar = (Toolbar) findViewById(R.id.tool_bar);
toolbar.setTitle(brandName);
setSupportActionBar(toolbar);
PD = new ProgressDialog(this);
PD.setMessage("Loading.....");
PD.setCancelable(false);
recyclerView = (RecyclerView)findViewById(R.id.recycler_view_history);
recyclerView.setHasFixedSize(true);
linearLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);
sendRequestForHistory();
// Here itemHistories is empty.
historyAdapter = new HistoryAdapter(itemHistories, recyclerView);
recyclerView.setAdapter(historyAdapter);
historyAdapter.notifyDataSetChanged();
}
private void sendRequestForHistory() {
//send request to server and get response history data
// then history dada add to itemHistories ArrayList
itemHistories.add(new ItemHistory(requestReceiver[i], requestAmount[i],requestCost[i]);
}
}
アダプタコードを表示できますか? –
@ Matthew Shearer、ありがとうアダプタークラスは大丈夫だと思います。私は 'historyAdapter = new HistoryAdapter(itemHistories、recyclerView);を使用します。 recyclerView.setAdapter(historyAdapter); historyAdapter.notifyDataSetChanged(); 'sendRequestForHistory()でうまく動作します。 – crazyCoder
sendRequestForHistory()は何とか新しいスレッドを作成しますか?もしそうなら、アダプターの設定はこれが完了するまで待つ必要があります。 –