안녕하세요? 요새 도움 많이 받고있는 신규개발자입니다.
이번 화면을 구성하는데요...
한화면에 리스트뷰를 2개써서 구성하고 있습니다.
그래서 아래와 같이 소스를 작성해서 구현했는데요...
실행시키면 다음과 같은 에러가 나면서 실행이 되지 않습니다.
에러코드 : java.lang.RuntimeException:Unable to start activity ComponentInfo : java.lang.UnsupportedOperationException:addView(View, LayoutParams) is not supported in AdpapterView
위와 같은 에러를 발생시킵니다..
리스트를 만들고 DB에서 불러와서 SimpleCursorAdapter를 이용하여 리스트에 데이터를 넣고 싶은데요..
뭐가 문제일까요??ㅠㅠ
도와주세요...
-------------------------------------- xml파일 ----------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="5" >
<ListView
android:id="@+id/gradelist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="4">
</ListView>
<ListView
android:id="@+id/unitlist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="검색된 리스트가 존재하지 않습니다." />
</ListView>
</LinearLayout>
----------------------------------- java파일 --------------------------------------
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_unitsel);
Log.d(TAG, "Unit get Start!");
//DB확인후 DB파일을 복사한다.
DBAdapter dba = new DBAdapter(this);
dba.open();
gradelist = (ListView)findViewById(R.id.gradelist);
unitlist = (ListView)findViewById(R.id.unitlist);
//학년셋팅
String[] grades = {getResources().getString(R.string.grade1), getResources().getString(R.string.grade2), getResources().getString(R.string.grade3), getResources().getString(R.string.grade4),
getResources().getString(R.string.grade5), getResources().getString(R.string.grade6), getResources().getString(R.string.grade7), getResources().getString(R.string.grade8), getResources().getString(R.string.grade9)};
adapt = new ArrayAdapter<String>(this, R.layout.gradelist_item, grades);
gradelist.setAdapter(adapt);
Log.d(TAG, "학년리스트를 셋팅합니다.");
//단원셋팅
Cursor c = dba.selectExQuery("select UnitCode as _id, UnitName from itempool;");
SimpleCursorAdapter rAdapter = getAdapter(c);
unitlist.setAdapter(rAdapter);
Log.d(TAG, "단원리스트를 셋팅합니다.");
dba.close();
}
private SimpleCursorAdapter getAdapter(Cursor paramCursor){
String[] columns = new String[] { "UnitName" };
int[] to = new int[] { R.id.unitname };
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(unitlist.getContext(), R.layout.unitlist_item, paramCursor, columns, to);
return mAdapter;
}




XML에추가하신
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="검색된 리스트가 존재하지 않습니다." />
이부분은 리스트뷰가 비었을때 보여주기위해 추가하셧다고 생각됩니다.
리스트뷰안에 넣으시면안되고 리스트뷰 아래쪽
</ListView>
<--이부분에 추가를 해주셔야합니다.
발생한에러는 리스트뷰의 차일드로 Textview를 두려고해서 발생했다고 생각되네요