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()でテキストサイズを変更します。

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 に答える