【发布时间】:2014-03-21 15:53:10
【问题描述】:
我正在尝试在后台处理图像加载。
现在,我查看下一个链接 - here
而且我有一些我不明白的东西 -
1) 我为列表视图项制作了下一个 CursorAdapter-
public class ChatCursorAdapter extends CursorAdapter implements OnClickListener {
public ChatCursorAdapter(Context context, Cursor c) {
super(context, c, 0);
}
@Override
public int getCount() {
return getCursor() == null ? 0 : super.getCount();
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int _position) {
Cursor cursor = (Cursor) getItem(_position);
return getItemViewType(cursor);
}
private int getItemViewType(Cursor cursor) {
String sender = cursor.getString(2);
SharedPreferences userPref = PreferenceManager
.getDefaultSharedPreferences(MainChat.this);
String saveUser = userPref.getString("user", "");
if (saveUser.equalsIgnoreCase(sender)){
return 0;
}else{
return 1;
}
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
holder = (ViewHolder) view.getTag();
holder.mesg.setText(getSmiledText(MainChat.this,msg));
holder.mesg2.setText(getSmiledText(MainChat.this,msg2));
holder.myImage.setTag(picPath);
holder.myImage.setImageBitmap(setImageToImageView(picPath));
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
View itemLayout = null;
switch(getItemViewType(cursor)){
case 0:
itemLayout = getLayoutInflater().inflate(R.layout.msg_item1,parent, false);
break;
case 1:
itemLayout = getLayoutInflater().inflate(R.layout.msg_item13, parent,false);
break;
}
itemLayout.setTag(holder);
holder.mesg = (TextView) itemLayout.findViewById(R.id.text_start);
holder.mesg2 = (TextView) itemLayout.findViewById(R.id.text_end);
holder.myImage = (ImageView) itemLayout.findViewById(R.id.imageView_msgpic);
return itemLayout;
}
现在我想使用链接中的信息。
但我不明白 - 我需要传递什么以及 AsyncTask 留在 CursorAdapter 的什么?
示例代码也使用了-
.execute(holder);
我不能像这样调用 AsyncTask -
new AsyncTask().execute();
我不明白我应该如何以及在哪里调用 AsyncTask?
感谢您的帮助
【问题讨论】:
-
你可能想看看我自己对我的问题的回答:stackoverflow.com/questions/44216331/…
标签: android listview android-asynctask