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 메세지인데 어떤 문제로 오류가 발생됬는지 도움 부탁드립니다.