0
내가 정의 listadapter 할 tryging하고

를 작동하지 않는 경우, 여기 ... 사용자 정의 listadapter 클래스는 NullPointerException 제공하지만 난 내가 잘못하고 있어요 몰랐 않습니다사용자 지정 ListAdapter

여기
public class BusinessListAdapter extends BaseAdapter { 

    private Context mContext; 
    private List<Businesses> mBusinessesList = null; 
    private LayoutInflater mLayoutInflator = null; 
    private ViewHolder mViewHolder; 

    private static class ViewHolder{ 
     TextView mBName; 
     TextView mBAddress; 
     TextView mBDealsCount; 
     TextView mBDistance; 
    } 

    public BusinessListAdapter(Context mContext, 
      List<Businesses> mBusinessesList){ 
     super(); 
     this.mContext = mContext; 
     this.mBusinessesList = mBusinessesList; 
     this.mLayoutInflator = LayoutInflater.from(mContext);  
    } 

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

    @Override 
    public Businesses getItem(int position) {  
     return mBusinessesList.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      mLayoutInflator = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = mLayoutInflator.inflate(R.layout.layout_list_item, null); 
      mViewHolder = new ViewHolder(); 

      mViewHolder.mBName = (TextView) convertView. 
        findViewById(R.id.tvListItemBName); 
      mViewHolder.mBName = (TextView) convertView. 
        findViewById(R.id.tvListItemBAddress); 
      mViewHolder.mBName = (TextView) convertView. 
        findViewById(R.id.tvListItemBDealsCount); 
      mViewHolder.mBName = (TextView) convertView. 
        findViewById(R.id.tvListItemBDistance); 

      convertView.setTag(mViewHolder); 
     }else{ 
      mViewHolder = (ViewHolder) convertView.getTag(); 
     } 

     Businesses business = mBusinessesList.get(position); 

     mViewHolder.mBName.setText(business.getbName()); 
     mViewHolder.mBAddress.setText(business.getbAddress()); 
     mViewHolder.mBDealsCount.setText(business.getDealCount()); 
     mViewHolder.mBDistance.setText(business.getbDistance()); 

     return convertView; 
    } 

} 

이 내 목록보기 활동 :

public class BusinessListActivity extends ListActivity implements OnItemClickListener{ 

    private ArrayList<Businesses> businessesList; 
    private BusinessListAdapter mBusinessListAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.layout_bussinesses_list); 

     businessesList = new ArrayList<Businesses>(); 

     businessesList.add(new Businesses("ABC","ABC ADDRESS","5 Deals","2Km")); 
     businessesList.add(new Businesses("ABC","ABC ADDRESS","5 Deals","2Km")); 
      businessesList.add(new Businesses("ABC","ABC ADDRESS","5 Deals","2Km")); 

     mBusinessListAdapter = new BusinessListAdapter(BusinessListActivity.this, 
       businessesList); 
     setListAdapter(mBusinessListAdapter); 
     getListView().setOnItemClickListener(this); 

    } 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, 
      long id) { 
     Businesses mBusiness = businessesList.get(position); 

     Intent intent = new Intent(BusinessListActivity.this, BusinessDealsActivity.class);  
//  intent.putExtra("mBusiness", mBusiness);   
     startActivity(intent); 

    } 

} 

여기 내 logcat입니다. 이 같이 할 이유는 무엇

05-13 12:21:22.080: E/AndroidRuntime(6143): FATAL EXCEPTION: main 
05-13 12:21:22.080: E/AndroidRuntime(6143): java.lang.NullPointerException 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at com.faisalahsan.discountcloud.listviewadapters.BusinessListAdapter.getView(BusinessListAdapter.java:78) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.AbsListView.obtainView(AbsListView.java:2041) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1244) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.ListView.onMeasure(ListView.java:1155) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.View.measure(View.java:12758) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:660) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.View.measure(View.java:12758) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.View.measure(View.java:12758) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:812) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.View.measure(View.java:12758) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2092) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.View.measure(View.java:12758) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2445) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.os.Looper.loop(Looper.java:137) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) 
05-13 12:21:22.080: E/AndroidRuntime(6143):  at dalvik.system.NativeStart.main(Native Method) 
+0

nullpointer 예외가 발생합니까? logcat 게시 –

+0

@ madhu 나는 logcat으로 내 질문을 업데이트했습니다. – FAISAL

답변

1

, "mViewHolder.mBName는"반복적으로, 문제의 원인은 코드 라인 위에 다른보기

에게
mViewHolder.mBName = (TextView) convertView. 
        findViewById(R.id.tvListItemBName); 
      mViewHolder.mBName = (TextView) convertView. 
        findViewById(R.id.tvListItemBAddress); 
      mViewHolder.mBName = (TextView) convertView. 
        findViewById(R.id.tvListItemBDealsCount); 
      mViewHolder.mBName = (TextView) convertView. 
        findViewById(R.id.tvListItemBDistance); 

희망을 얻기를 위해 사용되는 다른 textviews에 대해 서로 다른 변수를 사용 아래처럼,

mViewHolder.mBName = (TextView) convertView. 
         findViewById(R.id.tvListItemBName); 

    mViewHolder.mBAddress= (TextView) convertView. 
           findViewById(R.id.tvListItemBAddress); 
    mViewHolder.mBDealsCount= (TextView) convertView. 
          findViewById(R.id.tvListItemBDealsCount); 
mViewHolder.mBDistance = (TextView) convertView. 
         findViewById(R.id.tvListItemBDistance);