如何使用从 parse.com 数据库检索到的数据动态添加 cardslib CardListView 标题文本?

How to dynamically add cardslib CardListView title text with the data retrieved from parse.com database?

我有一个简单的 ParseQuery,它检索 class 'PrivateData' 的单个 object。

 ParseQuery<PrivateData> query = ParseQuery.getQuery(PrivateData.class);
 query.whereEqualTo("user", ParseUser.getCurrentUser());

此代码随后可用于使用来自 PrivateData class 的数据填充我的 listView class。

但我的要求是有一个 CardListView 并填充标题。

如何使用从 parse.com 获得的数据设置卡片标题?

public class HistoryActivity extends ActionBarActivity {


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

    // get action bar
    android.support.v7.app.ActionBar actionBar = getSupportActionBar();

    // Enabling Up / Back navigation
    actionBar.setDisplayHomeAsUpEnabled(true);

    /*
           1. Issue the parse query

           2. Set the result from the query to each card title of CardListView

           3. Repeat step 1 and step 2 until we get all the results and they are populated dynamically in CardsListView
     */




}

问题出在哪里?

 ArrayList<Card> cards = new ArrayList<Card>();
 for (int i = 0; i < query.count; i++) {

     Card card = new Card(getActivity());
     card.setTitle(xxx);
     cards.add(card);
 }     
 mCardArrayAdapter.addAll(cards);
 mCardArrayAdapter.notifyDataSetChanged(); 

当然,您可以为您的标题使用带有自定义布局的自定义卡片。

谢谢加布里埃尔马里奥蒂!所以我想我明白了。这是代码。 欢迎提出 and/or 改进建议。

    ParseQuery<PrivateData> query = new ParseQuery<>("PrivateData");
    query.whereEqualTo("user", ParseUser.getCurrentUser());
    query.orderByDescending("createdAt");
    query.setCachePolicy(ParseQuery.CachePolicy.CACHE_THEN_NETWORK);
    query.findInBackground(new FindCallback<PrivateData>() {

        @Override
        public void done(List<PrivateData> data, ParseException error) {
            if (data != null) {

                CardArrayAdapter mCardArrayAdapter;
                CardListView cardListView;
                Card card;
                ArrayList<Card> cardArrayList = new ArrayList<>();

                for (int i = 0; i < data.size(); i++) {
                    card = new Card(getApplicationContext());
                    card.setTitle("Created At : " + data.get(i).getCreatedAt().toString());

                    cardArrayList.add(card);
                }


                mCardArrayAdapter = new CardArrayAdapter(getApplicationContext(), cardArrayList);
                cardListView = (CardListView) findViewById(R.id.history_card_view);


                cardListView.setAdapter(mCardArrayAdapter);


            }
        }
    });