在Android的列表视图中更改所选项目的字体大小

3
在我的列表视图填充器中,我有一个图片和一个TextView。当用户选择列表视图中的任何项目时,我想增加TextView中文本的字体大小。我正在使用自定义适配器。我可以在getView方法中实现吗?并且也可以不总是调用notifydatasetchanged()来实现这个吗?

你创建了自定义适配器吗? - Wolverine
你应该使用设计模式 Holder 来完全控制 ListView 中的元素,否则你将无法这样做。这个解决方案在编写上是最干净和正确的。 - Simon Dorociak
3个回答

1
您可以使用 setTag()getTag()
在您的适配器的 getView() 中使用 setTag()。
@Override
public View getView(int position, View convertView, ViewGroup parent) {

    convertView=  getLayoutInflater().inflate(R.layout.layoutfile, null);
    TextView mTextViewNumber= (TextView) convertView.findViewById(R.id.TvId);
    ImageView mImageView= (ImageView) convertView.findViewById(R.id.ImgId)
    mTextViewNumber.setText("Hi hello");
    mImageView.setBackgroundResource(R.x.xxxx);
    convertView.setTag(mTextViewNumber, R.id.TvId);
    convertView.setTag(mImageView, R.id.ImgId);
    return convertView;
}

通过 getTag() OnItemClickListener() 更改文本大小。

mListView=(ListView) findViewById(R.id.list_call_log_listview);
mListView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View view, int arg2,
                    long arg3) {
        TextView mTextView= (TextView) view.getTag(R.id.TvId);
        mTextView.setTextSize(20);
        ImageView mImageView= (ImageView) view.getTag(R.id.ImgId);
        mImageView.setBackgroundResource(R.x.xxxx);
    }

});

谢谢你的回复。除了更改文本大小之外,当所选图像时,我还需要更改图像的背景(我的inflator有一个textview和imageview)。我如何在多个项目中使用gettag()和settag()?如果我使用上述代码,我是否需要调用notifydatasetchaged()?因为我不想调用它。 - BlackberryChennai
请再看一遍我的答案,针对多个控制做出了更改。 - Mohammed Azharuddin Shaikh
谢谢,这个有效,但是当我点击一个项目后会弹出一个弹窗。从弹窗返回后,尺寸仍然很大。我希望它能恢复到正常大小。 - BlackberryChennai
将TextView和ImageView全局化,在从对话框返回时将它们改回正常状态。 - Mohammed Azharuddin Shaikh

1

我认为你可以在onItemClick方法中使用这个,它是一个相当简单的解决方案。

View v=myListView.getChildAt(position);
TextView tv=(TextView)v.findViewById(R.id.myTextView);
tv.setTextSize(...);

0

http://stackoverflow.com/questions/6973914/change-listitem-view-on-select-in-listview - Dheeresh Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接