我正在将数据从Fire-base获取到列表视图,但是我得到的字符串很长,并且android中的listView似乎不支持multiLine。
这是我的数据库的样子:
layoutFile是:
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中显示数据的方式:
答案 0 :(得分:1)
在您的.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);
答案 1 :(得分:0)
您需要将这两行添加到TextView
中的item.xml
android:singleLine="true"
android:ellipsize="end"