Android Adapters getView未返回所需的行
我在getView()中有一些“if”语句,我希望返回if块中的行,但是尽管条件为true,我没有得到行,但我在函数的return语句中得到了行(最后一行)。 我总是收到错误的一行!!(if语句外的行) 代码可以解释我的英语不能做什么: 。。。请你帮我找出错误Android Adapters getView未返回所需的行,android,adapter,Android,Adapter,我在getView()中有一些“if”语句,我希望返回if块中的行,但是尽管条件为true,我没有得到行,但我在函数的return语句中得到了行(最后一行)。 我总是收到错误的一行!!(if语句外的行) 代码可以解释我的英语不能做什么: 。。。请你帮我找出错误 public View getView(int position, View convertView, ViewGroup parent) { Log.e("SOMAA","Type: "+ t
public View getView(int position, View convertView, ViewGroup parent) {
Log.e("SOMAA","Type: "+ thisItems.get(position).type+" ");
LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.msgfromme, parent, false); ;
if(thisItems.get(position).type==MessageType.TextMessage)
{
Log.e("SOMAA","in if type text");
if (thisItems.get(position).mFrom.equals("Me: ")) {
Log.e("SOMAA","Partener = Me ");
row = inflater.inflate(R.layout.msgfromme, parent, false);
ImageView STATUS = (ImageView) row.findViewById(R.id.sent_indecator);
STATUS.setImageResource(thisItems.get(position).sent_icon);
} else
{
row = inflater.inflate(R.layout.msgtome, parent, false);
thisItems.get(position).mFrom="Stranger";
Log.e("SOMAA","Partener = Stranger ");
}
//Get::
ImageView partnerImg = (ImageView) row.findViewById(R.id.myimage);
TextView partner = (TextView) row.findViewById(R.id.frommepartner);
TextView msg = (TextView) row.findViewById(R.id.msgtohim);
TextView timespam = (TextView) row.findViewById(R.id.timefromme);
//Set::
partnerImg.setImageResource((thisItems.get(position)).mImage);
partner.setText(thisItems.get(position).mFrom);
timespam.setText(thisItems.get(position).mTimeStamp);
msg.setText(thisItems.get(position).mMsgbdy, TextView.BufferType.SPANNABLE);
return row;// I want this row <<<<<----
}
//---------------------------------------------------------------------------------------------------------
else if (thisItems.get(position).type==MessageType.urlToParter)
{
Log.e("SOMAA","In else if (thisItems.get(position).type==MessageType.urlToParter) : " + (thisItems.get(position).type));
Log.e("SOMAA",thisItems.get(position).url);
if (thisItems.get(position).mFrom.equals("Me: ")) {
row = inflater.inflate(R.layout.image_row_from_me, parent, false);
} else{
row = inflater.inflate(R.layout.image_row_to_me, parent, false);
thisItems.get(position).mFrom="Stranger";
}
//Get::
ImageView imageShow = (ImageView) row.findViewById(R.id.imgsrc);
TextView partner = (TextView) row.findViewById(R.id.partner_send_image);
TextView timespam = (TextView) row.findViewById(R.id.timeimg);
//Set::
Log.d("SOMAA","Reading File");
thisItems.get(position).url=thisItems.get(position).url.replace("\\","/");
File imgFile = new File(thisItems.get(position).url);
Log.d("SOMAA","is exist file"+imgFile.exists());
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
imageShow.setImageBitmap(myBitmap);
partner.setText(thisItems.get(position).mFrom);
timespam.setText(thisItems.get(position).mTimeStamp);
}
return row; // OR this row <<<<<----
}
Log.e("SOMAA","OOOPS, Not our row!!");
return row;//But <<<<< I Always get this row
}
**Update:**
Logcat|:
01-14 15:37:26.929 1644-1644/? E/SOMAA﹕ Type: 100
01-14 15:37:33.129 1644-1644/? E/SOMAA﹕ Type: 0
01-14 15:37:33.319 1644-1644/? E/SOMAA﹕ Type: 100
01-14 15:37:33.878 1644-1644/? E/SOMAA﹕ Type: 0
01-14 15:37:33.929 1644-1644/? E/SOMAA﹕ Type: 100
01-14 15:37:45.889 1644-1644/? E/SOMAA﹕ Type: 0
01-14 15:37:45.928 1644-1644/? E/SOMAA﹕ Type: 100
01-14 15:37:49.520 1644-1644/? E/SOMAA﹕ Type: 0
01-14 15:37:49.558 1644-1644/? E/SOMAA﹕ Type: 100
01-14 15:37:51.619 1644-1644/? E/SOMAA﹕ Type: 0
01-14 15:37:51.679 1644-1644/? E/SOMAA﹕ Type: 0
01-14 15:37:51.729 1644-1644/? E/SOMAA﹕ Type: 100
01-14 15:37:52.309 1644-1644/? E/SOMAA﹕ Type: 0
01-14 15:37:52.339 1644-1644/? E/SOMAA﹕ Type: 0
01-14 15:37:52.388 1644-1644/? E/SOMAA﹕ Type: 100
01-14 15:48:14.229 1693-1709/? E/SOMAA﹕ in handletext message
01-14 15:48:14.264 1693-1709/? E/SOMAA﹕ msg body: 65+5+65
01-14 15:48:16.139 1693-1693/? E/SOMAA﹕ Type: 100
01-14 15:48:16.189 1693-1693/? E/SOMAA﹕ in if type text
01-14 15:48:16.219 1693-1693/? E/SOMAA﹕ Partener = Stranger
01-14 15:48:34.329 1693-1693/? E/SOMAA﹕ Type: 0
01-14 15:48:34.439 1693-1693/? E/SOMAA﹕ OOOPS, Not our row!!
01-14 15:48:34.489 1693-1693/? E/SOMAA﹕ Type: 100
01-14 15:48:34.530 1693-1693/? E/SOMAA﹕ in if type text
01-14 15:48:34.629 1693-1693/? E/SOMAA﹕ Partener = Stranger
01-14 15:49:20.178 1693-1693/? E/SOMAA﹕ Type: 0
01-14 15:49:20.248 1693-1693/? E/SOMAA﹕ OOOPS, Not our row!!
01-14 15:49:20.270 1693-1693/? E/SOMAA﹕ Type: 0
01-14 15:49:20.288 1693-1693/? E/SOMAA﹕ OOOPS, Not our row!!
01-14 15:49:20.308 1693-1693/? E/SOMAA﹕ Type: 100
01-14 15:49:20.338 1693-1693/? E/SOMAA﹕ in if type text
01-14 15:49:20.368 1693-1693/? E/SOMAA﹕ Partener = Stranger
01-14 15:49:20.918 1693-1693/? E/SOMAA﹕ Type: 0
01-14 15:49:20.948 1693-1693/? E/SOMAA﹕ OOOPS, Not our row!!
01-14 15:49:20.968 1693-1693/? E/SOMAA﹕ Type: 0
01-14 15:49:20.988 1693-1693/? E/SOMAA﹕ OOOPS, Not our row!!
01-14 15:49:21.008 1693-1693/? E/SOMAA﹕ Type: 100
01-14 15:49:21.038 1693-1693/? E/SOMAA﹕ in if type text
01-14 15:49:21.058 1693-1693/? E/SOMAA﹕ Partener = Stranger
01-14 15:51:16.128 1693-1693/? E/SOMAA﹕ imageeeee image C:\wamp\www\RandomSendServer\images\1389714677174.gif
01-14 15:51:18.049 1693-1693/? E/SOMAA﹕ in handletext message
01-14 15:51:18.059 1693-1693/? E/SOMAA﹕ msg body:
01-14 15:51:18.338 1693-1693/? E/SOMAA﹕ Type: 100
01-14 15:51:18.379 1693-1693/? E/SOMAA﹕ in if type text
01-14 15:51:18.419 1693-1693/? E/SOMAA﹕ Partener = Stranger
01-14 15:51:18.439 1693-1693/? E/SOMAA﹕ Type: 0
01-14 15:51:18.468 1693-1693/? E/SOMAA﹕ OOOPS, Not our row!!
01-14 15:51:18.488 1693-1693/? E/SOMAA﹕ Type: 0
01-14 15:51:18.529 1693-1693/? E/SOMAA﹕ OOOPS, Not our row!!
01-14 15:51:18.559 1693-1693/? E/SOMAA﹕ Type: 100
01-14 15:51:18.579 1693-1693/? E/SOMAA﹕ in if type text
01-14 15:51:18.619 1693-1693/? E/SOMAA﹕ Partener = Stranger
public View getView(int位置、视图转换视图、视图组父视图){
Log.e(“SOMAA”,“Type:”+thisItems.get(position.Type+”);
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
视图行=充气器。充气(R.layout.msgfrome,父项,false);
if(thisItems.get(position).type==MessageType.TextMessage)
{
Log.e(“SOMAA”,“在if类型文本中”);
if(thisItems.get(position).mFrom.equals(“Me:”){
Log.e(“SOMAA”,“Partener=Me”);
row=充气机。充气(R.layout.msgfrome,父项,false);
ImageView状态=(ImageView)row.findViewById(R.id.sent\u indicator);
STATUS.setImageResource(thisItems.get(position).sent_图标);
}否则
{
row=充气机。充气(R.layout.msgtome,父项,false);
thisItems.get(position.mFrom=“陌生人”;
Log.e(“SOMAA”,“Partener=陌生人”);
}
//Get::
ImageView partnerImg=(ImageView)row.findViewById(R.id.myimage);
TextView合作伙伴=(TextView)row.findViewById(R.id.frommepartner);
TextView msg=(TextView)row.findViewById(R.id.msgtohim);
TextView timespam=(TextView)row.findViewById(R.id.timeFrome);
//集合::
partnerImg.setImageResource((thisItems.get(position)).mImage);
partner.setText(thisItems.get(position.mFrom));
timespam.setText(thisItems.get(position.mTimeStamp));
msg.setText(thisItems.get(position).mMsgbdy,TextView.BufferType.Spanable);
return row;//我想要这一行如上所述,不清楚真正的问题是什么,但不要忘记getView()
方法是在一个线程中调用的!因此它不是间接调用的,也许这就是为什么您得到的结果不是预期的结果(基本上,顺序是“错误的”).你问什么还不太清楚。你有什么,你想做什么?如果(thisItems.get(position.type==MessageType.TextMessage)是真的,但我没有得到这个if块末尾的返回行!!