3

在我的列表视图充气机中,我有一个图像和一个文本视图。当用户选择列表视图中的任何项目时,我想增加文本视图中文本的字体大小。我正在使用自定义适配器。我可以在 getview 方法中执行此操作吗?而且是否可以在不调用 notifydatasetchanged() 的情况下做到这一点?

4

3 回答 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() 更改 Textsize。

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);
    }

});
于 2012-05-28T12:42:36.230 回答
1

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

View v=myListView.getChildAt(position);
TextView tv=(TextView)v.findViewById(R.id.myTextView);
tv.setTextSize(...);
于 2012-05-28T12:51:53.973 回答
0

在 getView 功能的适配器中,您可以检查当前项目是否已选中,然后可以更改字体和颜色,如果这是真的...

或者可以使用选择器

如何更改选定/聚焦的 ListView 项目中的字体颜色?

于 2012-05-28T12:41:53.233 回答