2014-01-14 32 views
0

我在getView()中有一些「if」語句,我希望返回if塊中的行,但雖然條件爲真,但我沒有得到該行,但是我得到了函數的返回語句中的行(最後一行)。 所有的時間我收到錯誤的行!!(if語句之外的行) 該代碼可能解釋我的英語不能做什麼:適配器getView不返回我想要的行

...你可以幫我弄錯了!

 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 

100 = TextMessage的

+0

你不明白你在問什麼。你有什麼,你想做什麼? – Codeman

+0

if(thisItems.get(position).type == MessageType.TextMessage)是真的,但我沒有得到這個結束時的返回行if block! – EsmaeelQash

回答

0

正如上面所說的,目前還不清楚什麼是真正的問題,但不要忘了getView()方法在線程中調用!所以這不是被稱爲secuentially,也許這就是爲什麼你得到的結果,你不期望(基本上,在「錯誤」的順序)。