如何在listview中更改字体和大小

时间:2011-11-18 20:43:38

标签: android xml listview adapter

我必须从列表视图中获取已存在且不可见的项目,并且必须将这些项目放在另一个可见的空列表视图中。我知道有很多关于此的问题,但我的不同。因为我必须将它与RSSReader一起使用它更难,因为我试图调整代码但是....如何将项目从隐形列表视图转移到可见的列表视图,还可以更改字体和大小字体?

TextView feedtitle = (TextView) findViewById(R.id.feedtitle);
        TextView feedpubdate = (TextView) findViewById(R.id.feedpubdate);
        ListView itemlist = (ListView) findViewById(R.id.itemlist);

        if (feed == null)
        {
            feedtitle.setText("No RSS Feed Available");
        return;
        }

        feedtitle.setText(feed.getTitle());
        feedpubdate.setText(feed.getPubDate());

        ArrayAdapter<RSSItem> adapter = new ArrayAdapter<RSSItem>(this,android.R.layout.simple_list_item_1,feed.getAllItems());

        itemlist.setAdapter(adapter);
        itemlist.setOnItemClickListener(this);
        itemlist.setSelection(0);

1 个答案:

答案 0 :(得分:0)

你对文本化是正确的,等等。

请按照此示例进行操作。 (注意:我假设很多,例如用所需的字符串替换RSSItem。)

public void MyAdapter extends BaseAdapter {
    List<String> mVisibleData = new ArrayList<String>();
    Queue<String> mInvisibleData = new LinkedList<String>();

    public void addDataToInvisible(String string) {
            mInvisibleData.add(string);
    }

    public void moveInvisibleToVisible() {
        mVisibleData.add(mInvisibleData.poll());
        notifyDataSetChanged();
    }

    @Override public int getCount() {
            return mVisibleData.size();
    }

    @Override public String getItem(int position) {
        return mVisibleData.get(position);
    }

    @Override public long getItemId(int position) {
        return position;
    }

    @Override public View getView(int position, View convertView, ViewGroup parent) {
        TextView ret = new TextView(getContext());
        Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "mtfont.ttf");
        ret.setTypeFace(tf);
        ret.setTextSize(18.0f);
            ret.setText(mVisibleData.get(position);
        return ret;
    }
}

现在,您将需要处理更精细的细节,但我相信这将接近您的需求。