1
resposta

conteúdo de TextView dentro de uma ExpandabbleListView, não aparece na tela

Estou usando um ExpandableListView, onde cada registro de uma determinada lista possui 2 TextViews:

<LinearLayout
        android:id="@+id/song_list_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_gravity="center_vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/item_title"
            android:textStyle="bold"
            android:paddingLeft="10dp"
            android:textColor="@color/colorPrimary"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/item_search_line"
            android:textStyle="italic"
            android:textColor="@color/colorPrimary"
            android:text="Letra"
            android:paddingTop="5dp"
            android:paddingBottom="2dp"/>

    </LinearLayout>

ps: o valor de colorPrimary é um verde escuro

Para o primeiro TextView, eu consigo setar um valor via código:

TextView titleField = (TextView) view.findViewById(R.id.item_title);
titleField.setText(cantico.getNumber() + " - " + cantico.getTitle());

Porém, não consigo inserir um text no segundo TextView:

if((groupPosition == listHeaders.size() - 1) && (firstLineField == null)){
            String[] lyric = cantico.getLyrics().split("\n");
            String searchedLine = "";

            for(int i = 0; i < lyric.length; i++){
                if(lyric[i].contains(argument)){
                    String line = lyric[i];
                    if(line.length() > Constants.LYRICSMAXLENGHT){
                        line = String.valueOf(line.subSequence(0, Constants.LYRICSMAXLENGHT));
                        line = line + "...";
                    }
                    searchedLine = searchedLine + "\n" + line + "\n";
                }
            }

            searchedLineField.setText(searchedLine);
            searchedLineField.setVisibility(View.VISIBLE);
            searchedLineField.setTextSize(sizes.getListLyricSize());

        }

O código parece funcionar normalmente, porém na tela só aparece a primeira TextView. A segunda não aparece, embora o Android separe o espaço reservado para a TextView

1 resposta

Coloca um:

Toast.makeText(<SEU CONTEXTO>, searchedLine, Toast.LENGTH_SHORT).show();

Pra ter certeza que sua String está com o valor que você quer que apareça.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software