Autore Topic: Card Library  (Letto 10817 volte)

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Card Library
« Risposta #45 il: 10 Febbraio 2015, 10:28:13 CET »
0
Stavo provando ad implementare la ListBase. Tutto ok per l'implementazione default. Ora vorrei modificare il layout carddemo_example_inner_content.xml aggiungendo altre TextView, ad esempio così:


Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
    <ImageView
       android:layout_marginTop="2dp"
       android:id="@+id/colorBorder"
       android:background="@drawable/ic_tick_icon"
       android:layout_width="40dp"
       android:layout_height="40dp"/>
    <!-- Use same ID to use built-in features -->
    <TextView
       android:layout_toRightOf="@id/colorBorder"
       android:id="@+id/card_main_inner_simple_title"
       android:layout_marginLeft="10dp"
       android:gravity="center"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"/>

    <TextView
       android:layout_below="@id/card_main_inner_simple_title"
       android:id="@+id/card_main_inner_simple_title1"
       android:layout_marginLeft="10dp"
       android:gravity="center"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"/>
</RelativeLayout>


Il problema è che quando vado a cercare di inserire il testo nella TextView aggiunta mi dà errore di NullPointer, ora ho provato a fare l'Override del metodo setupInnerElements così:


Codice (Java): [Seleziona]
@Override
        public void setupInnerElements(ViewGroup parent, View view) {
            TextView tx= (TextView)view.findById(R.id.card_main_inner_simple_title1);
            tx.setText(mTitle);
      ....
        }


Ma mi dà un errore quando chiamo findById..ho provato a seguire la risposta che avevi dato qui:  Android CardsLib, how to add and set custom values in list item? - Stack Overflow

Cosa sto sbagliando?


Post unito: 10 Febbraio 2015, 11:06:49 CET
Sbagliavo metodo ora ho corretto così:

Codice (Java): [Seleziona]
 @Override
        public void setupInnerViewElements(ViewGroup parent, View view) {

            TextView tx= (TextView)parent.findViewById(R.id.card_main_inner_simple_title1);
            tx.setText(mTitleMain);


            TextView tx1= (TextView)parent.findViewById(R.id.card_main_inner_simple_title);
            tx1.setText(mTitleExam);


            //.... set the other ui elements
        }
« Ultima modifica: 10 Febbraio 2015, 11:06:49 CET da felasandroid, Reason: Merged DoublePost »

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +153
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Card Library
« Risposta #46 il: 10 Febbraio 2015, 23:43:02 CET »
0
Si è esatto il secondo metodo.
Ho anche corretto la risposta su SO.

Grazie

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Card Library
« Risposta #47 il: 11 Febbraio 2015, 08:02:14 CET »
0
Si è esatto il secondo metodo.
Ho anche corretto la risposta su SO.

Grazie

Grazie a te!

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Card Library
« Risposta #48 il: 04 Marzo 2015, 19:35:09 CET »
0
Carissimo...se volessi inserire ad esempio 2 card in un fragment di dettaglio che fa parte del classico Master-Flow come dovrei fare?

In pratica in questo Fragment ho messo in onCreate:

Codice (Java): [Seleziona]
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
     
        ..richiesta...
         init(response)
}

Nel metodo init ho messo:

Codice (Java): [Seleziona]
 private void init(JSONObject response) {




        try {

                Gson gson = new Gson();
                mPersona = gson.fromJson(String.valueOf(response.getJSONArray("data").getJSONObject(0)), Persona.class);

            CardListExams mCard = new CardListExams(getActivity(),
                    getResources().getString(R.string.nome) + " " +
                            mPersona.getNome(), mPersona.getCognome(),
                    getResources().getString(R.string.cognome) + " " +
                            mPersona.getTelefono());

           cards.add(mCard);

            mCardArrayAdapter = new CardArrayAdapter(getActivity(), cards);

            CardListView listView = (CardListView) rootView.findViewById(R.id.card_list_base_layout);
            if (listView != null) {
                listView.setAdapter(mCardArrayAdapter);
            }

        }
        catch (JSONException e) {
                e.printStackTrace();
            }


        }

e in onCreateView

Codice (Java): [Seleziona]
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        rootView = inflater.inflate(R.layout.fragment_item_detail, container, false);
        return rootView;
    }

Il layout sarebbe:

Codice (XML): [Seleziona]
 <it.gmariotti.cardslib.library.view.CardListView 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"
           android:id="@+id/card_list_base_layout"
           />

ma in pratica non mi visualizza nulla...o meglio mi visualizza la card vuota..

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Card Library
« Risposta #49 il: 11 Marzo 2015, 10:07:34 CET »
0
Sono ancora io con una domanda più semplice.. Nella Sectioned List è possibile aggingere un listener sull'evento click nel titolo section?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1232
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Card Library
« Risposta #50 il: 25 Marzo 2015, 11:10:17 CET »
0
Tale libreria implementa il caricamento di una lista con immagini cin thread? Se riempissi una qualsiasi tipo di lista con 200 immagini....posso contare sulla fluidità?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1232
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Card Library
« Risposta #51 il: 28 Marzo 2015, 01:03:45 CET »
0
Altra domanda. La lista con TopColoredCard è implementabile? Riesco solo a popolare la listviw con card e senza specializzazione del tipo TopColoredCard

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +153
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Card Library
« Risposta #52 il: 01 Aprile 2015, 23:14:27 CEST »
0
Tale libreria implementa il caricamento di una lista con immagini cin thread? Se riempissi una qualsiasi tipo di lista con 200 immagini....posso contare sulla fluidità?

Volendo si, ma se le immagini sono grandi e/o tante la scelta ottimale è sfruttare librerie come per esempio Glide o Picasso che possono essere facilmente integrabili nella struttura (ci sono diversi esempi con Picasso).

Offline tonno16

  • Utente storico
  • *****
  • Post: 1232
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Card Library
« Risposta #53 il: 02 Aprile 2015, 01:58:00 CEST »
0
Da quando ho scritto a oggi ho raggiunto un buon livello nella costruzione delle cards.
Ho solo un leggero problema: ho costruito la mia  classe che estende Card cosi da impostare un layout mio personale. Tutto perfetto se applico tale custom card alla cardviewnative.
Eppure se uso una cardlistview, e nell Adapter al getCard() costruisco una mia custom card esattamente come faccio col la cardview il layout risultante nella lista è un lo diverso. Vengono annullati i padding e il popup meni icon diventa più sgranato.

Sono noti problemi del genere oppure uso male io i layout? Magari domani posto del codice

Post unito: 02 Aprile 2015, 14:10:10 CEST
Risolto tutto anche sta volta. Era solo per curiosità. Picasso funziona sempre meravigliosamente.
Il problema del layoyt l'ho risolto al 100%.
Grazie
« Ultima modifica: 02 Aprile 2015, 14:10:10 CEST da tonno16, Reason: Merged DoublePost »

Offline tonno16

  • Utente storico
  • *****
  • Post: 1232
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Card Library
« Risposta #54 il: 04 Aprile 2015, 07:40:37 CEST »
0
Altra domanda. Dato che in caso di listview posso far tornare una Card facendo il cast su getItem() dell' dapter. Ovviamente ad ogni card ho il mio item ovvero un oggetto di tipo MiaClasse. Cosa comporta ridefinire una classe MyCard<i> che estende Card e mi da la possibilità di settore un generico item alla card? Cosi nell' adapter posso ricavare la mia MyCard e da li chiamare .getCustomItem() ?

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Card Library
« Risposta #55 il: 22 Aprile 2015, 10:02:25 CEST »
0
Avrei una domanda riguardante la SuggestedCard, ovvero è possibile fare in modo che il colore di sfondo dell'header copra tutto lo spazio orizzontale?

perchè adesso mi prende in considerazione la lunghezza della parola.

Come carddemo_suggested_header_inner ho questo layout:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   style="@style/card"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">

 
    <TextView
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@+id/text_suggested_card1"
       android:textSize="18sp"
       android:text="TESTO"
       android:layout_marginLeft="0dp"
       android:background="#ccdbe5"
       android:paddingLeft="10dp"
       android:gravity="center_vertical"
       android:textColor="@color/background_color"
       />

</LinearLayout>


UPDATE:  ho risolto. In pratica ho aggiunto nel layout principale della card questo:
Codice (XML): [Seleziona]
       <include
               android:id="@+id/carddemo_suggested_header_inner"
               layout="@layout/carddemo_suggested_header_inner" />

Senza quindi inserire l'header via codice ma via layout.
« Ultima modifica: 22 Aprile 2015, 11:17:26 CEST da felasandroid »