Jaison Brooks
Jaison Brooks

Reputation: 5826

Changing Text of CardsUI views

So im using this awesome Cards library (CardsUI) and trying to figure out how to insert my own text into these views grammatically. Im my main activity im parsing JSON data, now i want to use data from the JSON and insert the text into the Cards. Here is some code i have so far.

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hello_enlighten);

      // the id title is referencing the title in my card layout below
    system_id = (TextView) findViewById(R.id.title);

    system_name = (TextView) findViewById(R.id.system_name);

    CardUI mCardView = (CardUI) findViewById(R.id.cardUI1);
    mCardView.setSwipeable(false);

    // add AndroidViews Cards
    mCardView.addCard(new MyCard("Get the CardsUI view"));
    mCardView.addCardToLastStack(new MyCard("for Android at"));
    MyCard androidViewsCard = new MyCard("www.androidviews.net");

    mCardView.addCardToLastStack(androidViewsCard);      
    // draw cards
    mCardView.refresh();

            // Here is my JSON Parsing activity.
            new ProgressTask(WelcomeYou.this).execute();        
      }

My Card Layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="16dp" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:paddingLeft="8dp"
    android:paddingRight="8dp" >

    <TextView
        android:id="@+id/title"
        style="@style/CardTitle"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="title" />

</LinearLayout>

<View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:layout_marginTop="4dp"
    android:background="@color/stroke" />

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/selectable_background_cardbank"
    android:gravity="center_vertical"
    android:padding="4dp" >

    <TextView
        android:id="@+id/description"
        style="@style/CardText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:ellipsize="end"
        android:maxLines="4"
        android:text="description" />
</LinearLayout>

</LinearLayout>

Im simply trying to put text into the here mCardView.addCard(new MyCard("PUT JSON STRING HERE"));

Upvotes: 0

Views: 276

Answers (1)

moscro
moscro

Reputation: 596

I know this question was posted a while ago, but I'm just now using the CardUI and I've got it to work. I don't know what R.id.activity_hello_enlighten contains, but if you look at the example provided with their source, the layout from your activity should be using a CardUI component.

Code from the example layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<com.fima.cardsui.views.CardUI
    android:id="@+id/cardsview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

Otherwise there's nothing actually doing your card rendering to the screen.

Once you do this, get a pointer to the CardUI referenced by your layout (in the example code it's called cardsview) with the following code:

mCardView = (CardUI) findViewById(R.id.cardsview);

After that, it's as simple as adding a new card like this:

mCardView.addCardToLastStack(new MyCard("Your card's text!"));

Upvotes: 1

Related Questions