/** * */ package com.ch_linghu.fanfoudroid.ui.module; import android.content.Context; import android.content.SharedPreferences; import android.database.Cursor; import android.graphics.Bitmap; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CursorAdapter; import android.widget.ImageView; import android.widget.TextView; import com.ch_linghu.fanfoudroid.R; import com.ch_linghu.fanfoudroid.AppParam; import com.ch_linghu.fanfoudroid.app.LazyImageLoader.ImageLoaderCallback; import com.ch_linghu.fanfoudroid.app.Preferences; import com.ch_linghu.fanfoudroid.db.UserInfoTable; public class UserCursorAdapter extends CursorAdapter implements TweetAdapter { private static final String TAG = "TweetCursorAdapter"; private Context mContext; public UserCursorAdapter(Context context, Cursor cursor) { super(context, cursor); mContext = context; if (context != null) { mInflater = LayoutInflater.from(context); } if (cursor != null) { mScreenNametColumn = cursor .getColumnIndexOrThrow(UserInfoTable.FIELD_USER_SCREEN_NAME); mUserIdColumn = cursor.getColumnIndexOrThrow(UserInfoTable._ID); mProfileImageUrlColumn = cursor .getColumnIndexOrThrow(UserInfoTable.FIELD_PROFILE_IMAGE_URL); // mLastStatusColumn=cursor.getColumnIndexOrThrow(UserInfoTable.FIELD_LAST_STATUS); } mMetaBuilder = new StringBuilder(); } private LayoutInflater mInflater; private int mScreenNametColumn; private int mUserIdColumn; private int mProfileImageUrlColumn; // private int mLastStatusColumn; private StringBuilder mMetaBuilder; private ImageLoaderCallback callback = new ImageLoaderCallback() { @Override public void refresh(String url, Bitmap bitmap) { UserCursorAdapter.this.refresh(); } }; @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { View view = mInflater.inflate(R.layout.follower_item, parent, false); Log.d(TAG, "load newView"); UserCursorAdapter.ViewHolder holder = new ViewHolder(); holder.screenName = (TextView) view.findViewById(R.id.screen_name); holder.profileImage = (ImageView) view.findViewById(R.id.profile_image); // holder.lastStatus=(TextView) view.findViewById(R.id.last_status); holder.userId = (TextView) view.findViewById(R.id.user_id); view.setTag(holder); return view; } private static class ViewHolder { public TextView screenName; public TextView userId; public TextView lastStatus; public ImageView profileImage; } @Override public void bindView(View view, Context context, Cursor cursor) { UserCursorAdapter.ViewHolder holder = (UserCursorAdapter.ViewHolder) view .getTag(); Log.d(TAG, "cursor count=" + cursor.getCount()); Log.d(TAG, "holder is null?" + (holder == null ? "yes" : "no")); SharedPreferences pref = AppParam.mPref; // PreferenceManager.getDefaultSharedPreferences(mContext);; boolean useProfileImage = pref.getBoolean( Preferences.USE_PROFILE_IMAGE, true); String profileImageUrl = cursor.getString(mProfileImageUrlColumn); if (useProfileImage) { if (!TextUtils.isEmpty(profileImageUrl)) { holder.profileImage .setImageBitmap(AppParam.mImageLoader.get( profileImageUrl, callback)); } } else { holder.profileImage.setVisibility(View.GONE); } holder.screenName.setText(cursor.getString(mScreenNametColumn)); holder.userId.setText(cursor.getString(mUserIdColumn)); } @Override public void refresh() { getCursor().requery(); } }