линейная задача - PullRequest
       23

линейная задача

0 голосов
/ 20 сентября 2011

У меня странная проблема с макетом моего приложения.У меня есть список, в котором я вставил собственный макет для каждого элемента.Это хорошо работает.

Вот часть вставленного макета XML:

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
    >
        <TextView
            android:id="@+id/label"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp" />
        <TextView
            android:id="@+id/price"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp" />
        <TextView
            android:id="@+id/days"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp" />
        <TextView
            android:id="@+id/test"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp" />
        <TextView
            android:id="@+id/status"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp" />
    </LinearLayout>

В своей деятельности я делаю следующее:

tv = (TextView) row.findViewById(R.id.price);
tv.setText(getString(R.string.wishlist_price) + ": " + "293.99€");

getString (R.string.wishlist_price) определяется в string.xml как «Цена»

Теперь странная вещь: для указанных выше «293,99 €» вывод на телефон выглядит следующим образом:

Price: 293.99€

Но если я поменяю деньги, например, на 22,95 €, результат будет выглядеть следующим образом:

Price:
22.95€

Так что после «Цена» появится новая строка. Я не могу выяснить, что вызывает это.

Я пробовал это с "2,99 €", оно дает ожидаемый результат:

Price: 2.99€

Кто-то есть идея, что вызывает символ новой строки в примере "22,95 €"?

РЕДАКТИРОВАТЬ: Есть два линейных макета вокруг одного выше.Возможно, они вызывают это странное поведение:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
>
    <LinearLayout
        android:id="@+id/product_item"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
    >

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Это может или не может работать, но использование String.format(String, Object...) кажется подходящим для того, что вы делаете.

Сначала измените строку R.string.wishlist_price на

<string name="wishlist_price">Price: %1$s</string>

и затем позвоните, используя это:

tv = (TextView) row.findViewById(R.id.price);
tv.setText(String.format(getResources().getString(R.string.wishlist_price), price));

Посмотрите на это для получения дополнительной информации: Использование строковых ресурсов

0 голосов
/ 21 сентября 2011

Я решил это:

Я изменил wrap_content на fill_parent:

<TextView
                android:id="@+id/price"
                android:paddingTop="2dp"
                android:paddingLeft="15dp"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textSize="12dp" />
...