안드로이드 개발 질문/답변
(글 수 45,052)
package exam.Library;
import android.app.*;
import android.content.*;
import android.database.*;
import android.database.sqlite.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.widget.AdapterView.OnItemSelectedListener;
public class Daechool extends Activity {
byte num;
TextView tv;
String quick=new String();
WordDBHelper mHelper;
ArrayAdapter<CharSequence> adspin;
SQLiteDatabase db;
ContentValues row;
Cursor cursor;
SimpleCursorAdapter Adapter = null;
public void onCreate(Bundle savedInstanceState) {
Adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
cursor, new String[] { "name", "price" },
new int[] { android.R.id.text1, android.R.id.text2});
super.onCreate(savedInstanceState);
setContentView(R.layout.daechool);
mHelper = new WordDBHelper(this);
findViewById(R.id.daechoolBookSearch).setOnClickListener(mClickListener);
findViewById(R.id.daechoolbtn).setOnClickListener(mClickListener);
Spinner spin = (Spinner)findViewById(R.id.bookspinner);
spin.setPrompt("찾으시는 도서의 종류를 선택하세요.");
adspin = ArrayAdapter.createFromResource(this, R.array.Book, android.R.layout.simple_spinner_item);
adspin.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adspin);
mHelper.close();
spin.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
if(position==0){
Toast.makeText(Daechool.this, "학술지 선택", Toast.LENGTH_SHORT).show();
num=0;
}else if(position==1){
Toast.makeText(Daechool.this, "연구 보고서", Toast.LENGTH_SHORT).show();
num=1;
}else if(position==2){
num=2;
}else if(position==3){
num=3;
}else if(position==4){
num=4;
}else if(position==5){
num=5;
}
}
public void onNothingSelected(AdapterView<?> parent){
}
});
}
Button.OnClickListener mClickListener = new Button.OnClickListener(){
public void onClick(View v){
switch(v.getId()){
case R.id.daechoolBookSearch:
EditText et = (EditText)findViewById(R.id.daechoolBookName);
quick = et.getText().toString();
if(quick.equals(""))
Toast.makeText(Daechool.this, "도서명을 입력해 주세요", Toast.LENGTH_SHORT).show();
else{
tv=(TextView)findViewById(R.id.daechooltxt);
tv.setText("");
}
db=mHelper.getReadableDatabase();
cursor = db.rawQuery("SELECT name, creater, choolpan, amount FROM book WHERE name LIKE '%"+quick+"%'", null);
startManagingCursor(cursor);
SimpleCursorAdapter Adapter = null;
Adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
cursor, new String[] { "name", "price" },
new int[] { android.R.id.text1, android.R.id.text2});
//여기서 오류가 납니다.
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(Adapter);
String Result="";
while(cursor.moveToNext()){
String name = cursor.getString(0);
String creater = cursor.getString(1);
String choolpan = cursor.getString(2);
int amount = cursor.getInt(3);
Result = "도서명 : "+name+"\n저자 : "+creater+"\n출판사 : "+choolpan+"\n현재 수량 : "+amount;
Toast.makeText(Daechool.this, Result, Toast.LENGTH_SHORT).show();
String te = tv.getText().toString();
te+=name+"\n\n";
tv.setText(te);
}
break;
case R.id.daechoolbtn:
break;
}
}
};
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) {
onDestroy();
finish();
startActivity(new Intent(Daechool.this,Library.class));
//이벤트처리
return true;
}
return super.onKeyUp(keyCode, event);
}
}
class WordDBHelper extends SQLiteOpenHelper{
public WordDBHelper(Context context){
super(context, "Book.db",null,1);
}
public void onCreate(SQLiteDatabase db){
db.execSQL("CREATE TABLE IF NOT EXISTS book(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, creater TEXT, choolpan TEXT, amount INTEGER);");
db.execSQL("INSERT INTO book VALUES (null,'삼국지','나관중 저자','꿈의 교학',3);");
db.execSQL("INSERT INTO book VALUES (null,'안드로이드 프로그래밍 정복','김상형 저자','한빛미디어',2);");
db.execSQL("INSERT INTO book VALUES (null,'전문가로 가는 안드로이드 마스터 프로젝트','박헌재 지음','(주)교학사',1);");
}
public void onUpgrade(SQLiteDatabase db,int oldVersion, int newVersion){
db.execSQL("DROP TABLE IF EXISTS book");
onCreate(db);
}
}
----------------------------------------------------------------------------------
버튼을 누르면 해당되는 sql문의 db내용을 가지고 와서 리스트뷰에다가 뿌리려 하는데 잘 안되네요 ㅜㅜ




좀만 삽질하면 ListAdapter의 구조를 잘 알게 됩니다~