Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Onregs
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 13
#1

Wrap_content в кастомном адаптере - Программирование Android

01.07.2014, 18:32. Просмотров 489. Ответов 0
Метки нет (Все метки)

Добрый день пытаюсь парсить новости и выводить их в ListView через кастомный адаптер.
вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
public class NewsListAdapter extends BaseListAdapter {
 
 
    protected ArrayList<ItemNews> items;
 
    public NewsListAdapter(Context context, ArrayList<ItemNews> items) {
        super(context, items);
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(convertView==null) {
            convertView = mLInflater.inflate(R.layout.item_news, parent, false);
        }
        findView(convertView, position);
 
        return convertView;
    }
 
    public void findView(View convertView, int position) {
        ItemNews news = getItemNews(position);
 
        TextView[] textView = new TextView[4];
        WebView webView;
        ImageView imageView;
        textView[0] = (TextView) convertView.findViewById(R.id.tvText);
        textView[1] = (TextView) convertView.findViewById(R.id.tvText1);
        textView[2] = (TextView) convertView.findViewById(R.id.tvText2);
        textView[3] = (TextView) convertView.findViewById(R.id.tvText3);
 
        webView = (WebView) convertView.findViewById(R.id.tvWeb);
        imageView = (ImageView) convertView.findViewById(R.id.ivImage);
 
        setFavoriteImage(news, imageView, position);
        setWebView(webView, news);
        setClicker(textView[1], news, position);
        setViewPubDate(textView[0], news);
 
        textView[2].setText(news.getTime());
        textView[3].setVisibility(View.GONE);
    }
 
    public void setViewPubDate(TextView textView, ItemNews news) {
        String tag = news.getTag();
 
        textView.setText(news.getpubDate());
 
        if (tag.equals(HandleXML.TAG_NO)) {
            textView.setVisibility(View.GONE);
        } else {
            textView.setVisibility(View.VISIBLE);
        }
    }
    public void setFavoriteImage(ItemNews news, ImageView image, int position) {
        if (news.getTagFavorite().equals("add")) {
            image.setImageResource(R.drawable.favorite_add);
        } else {
            image.setImageResource(R.drawable.favorite_no);
        }
        image.setOnClickListener(this);
        image.setTag(position);
    }
 
    public void setClicker(TextView textClick, ItemNews news, int position) {
        textClick.setText(news.getTitle());
        textClick.setOnClickListener(this);
        textClick.setTag(position);
 
    }
    public void setWebView(WebView webView, ItemNews item) {
        WebSettings settings = webView.getSettings();
        settings.setDefaultTextEncodingName("utf-8");
        String url = item.getDescription();
        String summaryUrl = "<html><body><font size='3' color='White'>".concat(url).concat("</font></body></html>");
        webView.loadDataWithBaseURL(null, summaryUrl, "text/html", "en_US", null);
        webView.setBackgroundColor(0);
    }
 
    /**
     * Opens the new Activity with webviev,when pressing a title news
     */
    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.tvText1:
                Intent intent = new Intent(mContext, ActivityNews.class);
                intent.putExtra("url", (getItemNews((Integer) view.getTag()).getLink()));
                mContext.startActivity(intent);
                break;
            case R.id.ivImage:
                ImageView image = (ImageView) view.findViewById(R.id.ivImage);
                if (getItemNews((Integer) view.getTag()).getTagFavorite().equals("add")) {
                    image.setImageResource(R.drawable.favorite_no);
                    getItemNews((Integer) view.getTag()).setTagFavorite("no");
                } else {
                    image.setImageResource(R.drawable.favorite_add);
                    getItemNews((Integer) view.getTag()).setTagFavorite("add");
                }
                break;
        }
    }
 
}
Краткое описание новости парсится в виде html тега , я его вывожу в WebView , но дело в том что если я делаю вместе с
Java
1
2
3
if(convertView==null) {
            convertView = mLInflater.inflate(R.layout.item_news, parent, false);
        }
то некоторые WebView получаются больше чем в них текста , хатя там установлено wrap_content;
типа вот этого :
-----------
новость1
-----------
новость2
блаблабла
-----------
новость3


-----------
т.е. там где новость 3 замного свободного места.

вот лэйоут новости:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
 
        <TextView
            android:id="@+id/tvText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textColor="@color/colorWhite"
            android:textSize="15sp"
            android:textStyle="bold" 
            android:background="@color/search"/>
 
    </LinearLayout>
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
 
        <TextView
            android:id="@+id/tvText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/colorWhite"
            android:textSize="17sp"
            android:textStyle="bold"
            android:clickable="true"/>
 
    </LinearLayout>
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:baselineAligned="false">
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal">
            <WebView
                android:id="@+id/tvWeb"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>
 
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="15">
 
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/ivImage"
                android:cropToPadding="false"/>
        </LinearLayout>
 
    </LinearLayout>
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
 
        <TextView
            android:id="@+id/tvText2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:textColor="@color/colorWhite"
            android:textStyle="bold" />
 
    </LinearLayout>
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
 
        <TextView
            android:id="@+id/tvText3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:textColor="@color/colorWhite"
            android:textStyle="bold"
            android:background="@color/colorWhite"/>
 
    </LinearLayout>
 
</LinearLayout>
это можно пофиксить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 18:32     Wrap_content в кастомном адаптере
Посмотрите здесь:

Поиск по ListView основанному на кастомном адаптере - Программирование Android
Есть кастомный адаптер. ListView сделан на его основе. Данные загружаются из БД. Делаю поиск по позициям листа. Дописал в класс кастомного...

Фильтрация в кастомном SimpleCursorAdapter - Программирование Android
Здравствуйте. вот Активити public class MainActivity extends AppCompatActivity { SQLiteDatabase database; ...

SetBackgroundColor в кастомном ListView - Программирование Android
В кастомном ListView подсвечиваю строки через setBackgroundColor() или &quot;android:background&quot; Если нажимаю на обычную строку, то она...

OnClickListner на кастомном listview - Программирование Android
Здравствуйте такой вопрос есть кастомный список его код: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;RelativeLayout...

Получить индекс элемента в кастомном списке - Программирование Android
Добрый день. У меня имеется кастмоный список, состоящий из двух и более элементов. Например, я кликнул по 2 элементу списка, длина которого...

Убить поток в адаптере - Программирование Android
После Делфи не до конца понимаю работу &quot;сборщика мусора&quot; Явы. Привык &quot;подчищать&quot; за собой сам. Есть адаптер на основе BaseAdapter В...

Показывать или скрывать записи в адаптере - Программирование Android
Создаю адаптер со всеми записями для RecycleView а потом нажимаю кнопку и меняю условие отображение (например должны отображаться...

Назначить идентификаторы кнопкам в адаптере списка - Программирование Android
Есть цикл генерации данных для адаптера списка void fillData() { for (int i = 1; i &lt;= 17; i++) { String...

Не обновлять айтемы в адаптере когда скроллим список - Программирование Android
Такая проблема, есть адаптер с чекбоксами, я выбираю чекбоксы, потом опускаю список ниже, подымаю его и эти чекбоксы снова сняты, как этого...

Filterable не понимаю как в адаптере взять String значение по позиции ? - Программирование Android
fragment: inputSearch.addTextChangedListener(new TextWatcher() { @Override public void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru