2016-10-25 3 views
0

내 조각에서 어댑터에 ListView를 표시하기 위해 일부 정보를 전달하려고 시도했지만 통과하지만 ListView는 완료된로드 후에 아무 것도 표시하지 않습니다. 아래 CustomAdapter 클래스를 연결하려고합니다.왜 내 목록보기를 안드로이드에서 볼 수 없습니까?

package com.example.rama.hello.Adapters;

import android.app.Activity; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 
import com.example.rama.hello.Bean.RowItem; 
import com.example.rama.hello.R; 

import java.io.File; 
import java.util.ArrayList; 
import java.util.List; 

/** 
* Created by RAMA on 10/25/2016. 
*/ 
public class CustomAdapter extends ArrayAdapter<RowItem> { 

    Context mcontext; 
    ArrayList<RowItem> rowItem = new ArrayList<RowItem>(); 
    private RowItem row; 
    RowItem data; 


    public CustomAdapter(Context context, int resourceId, 
           ArrayList<RowItem> items) { 
     super(context, resourceId, items); 
     this.mcontext = context; 
    } 

    @Override 
    public int getCount() 
    { 
     return rowItem.size(); 
    } 


    @Override 
    public long getItemId(int position) { 
     return rowItem.indexOf(getItem(position)); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     if (convertView == null) 
     { 
      LayoutInflater mInflater = (LayoutInflater) mcontext 
        .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.list_item,parent,false); 
     } 

     ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon); 
     TextView txtTitle = (TextView) convertView.findViewById(R.id.title); 
     TextView txtSubTitle = (TextView) convertView.findViewById(R.id.sub_title); 
     TextView txtRightTitle = (TextView) convertView.findViewById(R.id.right_title); 

     RowItem row_pos = getItem(position); 

     // setting the image resource and title,subtitle,Righttitle 
     File imgFile = new File(row_pos.getIcon()); 

     if(imgFile.exists()){ 

      Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
      imgIcon.setImageBitmap(myBitmap); 
     } 


     if(row_pos.getTitle() == " ") 
     txtTitle.setText(row_pos.getPhone_number()); 
     else 
     txtTitle.setText(row_pos.getTitle()); 

     txtSubTitle.setText(row_pos.getSub_title()); 
     txtRightTitle.setText(row_pos.getRight_title()); 

     return convertView; 
    } 
} 
+1

게시물의 명확화 및 접선 토론과 관련된 의견을 남겨 두도록하겠습니다. 고맙습니다. –

답변

1

ArrayAdapter에서 당신은 당신이 필요 getViewArrayAdapter을 무시하는 것입니다,이하지 위해 만들어진 ArrayAdapter입니다 (RowItem의 사건 목록) 항목 목록에 대한 참조를 얻을 필요가 없습니다 내부적으로 목록을 처리하는 방법은 다음과 같습니다.

public class CustomAdapter extends ArrayAdapter<RowItem> { 


    public CustomAdapter(Context context, int resourceId, 
         ArrayList<RowItem> items) { 
     super(context, resourceId, items); 
    } 


    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
     LayoutInflater mInflater = LayoutInflater.from(parent.getContext()); 
     convertView = mInflater.inflate(R.layout.list_item, parent, false); 
     } 

     ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon); 
     TextView txtTitle = (TextView) convertView.findViewById(R.id.title); 
     TextView txtSubTitle = (TextView) convertView.findViewById(R.id.sub_title); 
     TextView txtRightTitle = (TextView) convertView.findViewById(R.id.right_title); 

     RowItem row_pos = getItem(position); 

     // setting the image resource and title,subtitle,Righttitle 
     File imgFile = new File(row_pos.getIcon()); 

     if (imgFile.exists()) { 

     Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
     imgIcon.setImageBitmap(myBitmap); 
     } 


     if (row_pos.getTitle() == " ") 
     txtTitle.setText(row_pos.getPhone_number()); 
     else 
     txtTitle.setText(row_pos.getTitle()); 

     txtSubTitle.setText(row_pos.getSub_title()); 
     txtRightTitle.setText(row_pos.getRight_title()); 

     return convertView; 
    } 
    } 
관련 문제