Как отобразить большую строку в элементах ListView? - PullRequest
0 голосов
/ 05 июля 2018

Я получаю свои данные из fire-base в виде списка, но полученная строка довольно длинная, а listView в Android, кажется, не поддерживает multiLine.
Вот так выглядит моя база данных: DB Pic
Файл макета:

RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".usersMessage">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:singleLine="true"
        android:layout_height="match_parent"></ListView>
</RelativeLayout>

Вот так я получаю свои данные в .java файле

myRef = FirebaseDatabase.getInstance().getReference().child("AdminMessages");
    mListView=(ListView) findViewById(R.id.listView);
    adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,list);
    mListView.setAdapter(adapter);



    myRef.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String value=dataSnapshot.getValue(String.class);

            list.add(value);
            adapter.notifyDataSetChanged();
        }

Вот как данные отображаются в listView:

enter image description here

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Создайте файл .xml в вашем layouts folder. Предположим, что имя файла - abc.xml, и оно имеет макет примерно такой:

    <?xml version="1.0" encoding="utf-8"?>
<Edittext xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@android:id/text1"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:background="@color/white_color"
          android:drawablePadding="10dp"
          android:gravity="start"
          android:paddingLeft="5dp"
          android:paddingRight="5dp"
          android:paddingTop="2.5dp"
          android:textAppearance="?android:textAppearanceSmall"
          android:textColor="@color/black_color"
          android:textStyle="normal"/>

теперь в вашем коде замените android.R.layout.simple_dropdown_item_1line на abc.xml

Заменить эти строки на:

adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,list);
mListView.setAdapter(adapter);

это:

  adapter=new ArrayAdapter<String>(this,R.layout.abc,list);
mListView.setAdapter(adapter);
0 голосов
/ 05 июля 2018

Вам нужно добавить эти две строки в TextView в item.xml

android:singleLine="true"
android:ellipsize="end"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...