마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

custom ListView 실행 중 오류 발생.

0 추천
package com.jinmj.housekeeping.library;

import java.util.ArrayList;

import com.jinmj.housekeeping.R;

import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class CategoryListViewAdapter extends BaseAdapter {

	Context context;
	ArrayList <CategoryData> al;
	int layout;
	LayoutInflater inf;
	
	
	
	public CategoryListViewAdapter(Context context, ArrayList<CategoryData> al, int layout) {
		this.context = context;
		this.al = al;
		this.layout = layout;
		inf = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	}
	
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return al.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
	     return al.get(position);
	}

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

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		if (convertView == null) {
			convertView = inf.inflate(layout, null);
		}
		
		TextView mCategoryNameTV = (TextView) convertView.findViewById(R.id.category_name_tv);
		TextView mCategoryTypeTV = (TextView) convertView.findViewById(R.id.category_type_tv);
		
		CategoryData  mCategoryData = al.get(position);
		mCategoryNameTV.setText(mCategoryData.mCategoryName);
		
		
		
		
		//수입 적색
		if(mCategoryData.mCategoryType == "수입") {
			mCategoryTypeTV.setTextColor(Color.parseColor("#FF5A5A"));
		} else if(mCategoryData.mCategoryType == "현금지출") {				//지출 파랑
			mCategoryTypeTV.setTextColor(Color.parseColor("#0100FF"));
		} else {																					//나머지 카드지출 녹색 
			mCategoryTypeTV.setTextColor(Color.parseColor("#1DDB16")); 
		}
			
		mCategoryTypeTV.setText(mCategoryData.mCategoryType);
		
		return convertView;
	}

}

어뎁터 코드입니다.

 

package com.jinmj.housekeeping;

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

import com.jinmj.housekeeping.library.CategoryData;
import com.jinmj.housekeeping.library.CategoryListViewAdapter;
import com.jinmj.housekeeping.library.MySQLiteOpenHelper;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.widget.Button;
import android.widget.ListView;

public class CategoryManageActivity extends Activity {
	MySQLiteOpenHelper mHelper;
	ArrayList<CategoryData> mCategoryDataAL = new ArrayList<CategoryData>();
	Button mCategoryAddBnt;
	CategoryListViewAdapter mAdapter;
	ListView mCategoryLV;
	


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_category_manage);
		
		//ListView초기화
		mCategoryLV = (ListView)findViewById(R.id.category_lv);
		
		
		//db 연결
		mHelper = new MySQLiteOpenHelper(CategoryManageActivity.this, "housekeeping.db", null, 1);
		
		// file이 생성 되어있지 않을 경우 파일 생성을 위해 더미 데이터 생성
		String fileChk = "/data/data/com.jinmj.housekeeping/databases/housekeeping.db";
		File file = new File(fileChk);
		if (!file.exists()) {
	
			mHelper.categoryInsert("카드지출", "식비");
			mHelper.categoryInsert("카드지출", "여행");
			mHelper.categoryInsert("카드지출", "요금");
			mHelper.categoryInsert("카드지출", "자동차");
			mHelper.categoryInsert("카드지출", "전자제품");
		}
					
		mCategoryDataAL = mHelper.categorySelect();
		mAdapter = new CategoryListViewAdapter(CategoryManageActivity.this, mCategoryDataAL, R.layout.categorylist);
		mCategoryLV.setAdapter(mAdapter);
		
	}
}

엑티비티가 실행되고 바로 오류가 발생하는데 원인을 못 찾겠습니다. ㅠㅠ

 

09-23 17:37:47.521: D/AndroidRuntime(26654): Shutting down VM
09-23 17:37:47.521: W/dalvikvm(26654): threadid=1: thread exiting with uncaught exception (group=0x41ec8c08)
09-23 17:37:47.531: E/AndroidRuntime(26654): FATAL EXCEPTION: main
09-23 17:37:47.531: E/AndroidRuntime(26654): Process: com.jinmj.housekeeping, PID: 26654
09-23 17:37:47.531: E/AndroidRuntime(26654): android.view.InflateException: Binary XML file line #15: Error inflating class textView
09-23 17:37:47.531: E/AndroidRuntime(26654): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
09-23 17:37:47.531: E/AndroidRuntime(26654): at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
 
logcat 메세지인데 어떤 문제로 오류가 발생됬는지 도움 부탁드립니다.

 

쌍둥이준 (180 포인트) 님이 2014년 9월 23일 질문

1개의 답변

+1 추천

body{zoom:101%!important;} android.view.InflateException: Binary XML file line #15: Error inflating class textView

여기서 문제가 있어서 TextView 를 생성하지 못한것 같은데요...

두통 1 (720 포인트) 님이 2014년 9월 23일 답변
감사합니다. 더분에 해결했습니다.

<TestView
      android:layout_weight="1"
/>

에서 문제가 발생되었네요

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />
로 수정해서 해결 되었습니다. 감사합니다.
...