ListView文本太长了

时间:2015-08-22 09:39:13

标签: java android listview

如果我在名称中添加一个超过10个字符的项目,则显示太短,导致下一列无法读取

这是我的.java文件

public class listview extends Activity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listview);


        SQLiteDatabase db = openOrCreateDatabase("Orders.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
        Cursor crs = db.rawQuery("SELECT * FROM OrderedList", null);
        ListView a = (ListView) findViewById(R.id.listView);
        String[] column1 = new String[crs.getCount()];
        double[] column2 = new double[crs.getCount()];
        int[] column3 = new int[crs.getCount()];
        double[] v2 = new double[crs.getCount()];
        int i = 0;
        Double sum = 0.0;
        int list_height = 0;
        while (crs.moveToNext()) {
            String item_name = crs.getString(crs.getColumnIndex("Food"));
            double item_price = crs.getDouble(crs.getColumnIndex("Price"));
            int temp_item_quantity = crs.getInt(crs.getColumnIndex("Quantity"));
            column1[i] = item_name;
            column2[i] = item_price;
            column3[i] = temp_item_quantity;
            v2[i] = column2[i] * column3[i];
            sum += v2[i];
            i++;
        }
        crs.close();
        ListView_Adapter adapter = new ListView_Adapter(this, column1, column2, column3);
        a.setAdapter(adapter);
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
    }
}

这是我的.xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/pop_up_bg">

    <ListView
        android:layout_marginLeft="10dp"
        android:layout_marginTop="40dp"
        android:layout_width="wrap_content"
        android:layout_height="450dp"
        android:id="@+id/listView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>

我有ListView,我想最小化其文本查看

这是将项目添加到列表

后的输出

enter image description here

2 个答案:

答案 0 :(得分:3)

如何克服这个问题

请创建自定义适配器类(如阵列适配器,基本适配器)并在自定义布局XML中设置数据。

现在在Parent Activity类中调用此适配器类

在此布局中,您将设置 Textview width Wrapped and android:ellipsize="end" android:singleLine="true" 。我希望它会对你有所帮助。

  

机器人:SINGLELINE =&#34;真&#34;将文本约束为单个文本   滚动线而不是让它包裹到多行,和   当您按下回车键时,会提前关注而不是插入换行符   键。

您可以查看此演示以获取示例目的

Sample Code for ListView with SQLite Database Connection in Android

答案 1 :(得分:1)

您可以使用以下参数来控制文本视图字符和行限制。

android:maxLines="2" // max number of lines text view can occupy
android:maxLength="50" // number of characters you want to show
android:ellipsize="end" // to show ... at the end

我选择的布局解决方案是。 水平线性布局中的3个文本视图。 使用固定宽度的最后两个文本视图。 和layout_weight为1到第一个文本视图,上面的参数根据需要设置。