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

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

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

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

01.07.2014, 18:32. Просмотров 487. Ответов 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 в кастомном адаптере
Посмотрите здесь:

Загрузки изображений из сети в адаптере GridView Android
Убить поток в адаптере Android
Android Поиск по ListView основанному на кастомном адаптере
Android SetBackgroundColor в кастомном ListView
Android Получить текст из одного TextView в кастомном ListView
Не обновлять айтемы в адаптере когда скроллим список Android
Получить индекс элемента в кастомном списке Android
Android Filterable не понимаю как в адаптере взять String значение по позиции ?
Android Показывать или скрывать записи в адаптере
Android OnClickListner на кастомном listview
Назначить идентификаторы кнопкам в адаптере списка Android
NullPointerException в адаптере RecyclerView Android

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

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

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