안드로이드 개발 질문/답변
(글 수 45,052)
package android.game;
import java.util.ArrayList;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
public class Dictionary extends Activity {
ListView list;
EditText edit;
DBHelper dbHelper;
SQLiteDatabase db;
String sql;
Cursor cursor;
String word;
ArrayAdapter<String> array;
ArrayList<String> Al = new ArrayList<String>();
ListView list;
EditText edit;
DBHelper dbHelper;
SQLiteDatabase db;
String sql;
Cursor cursor;
String word;
ArrayAdapter<String> array;
ArrayList<String> Al = new ArrayList<String>();
final static String dbName = "word.db";
final static int dbVersion = 1;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);//타이틀 제거
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//풀스크린
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//자동꺼짐 방지 화면유지
setContentView(R.layout.main);
list = (ListView)findViewById(R.id.list);
edit = (EditText)findViewById(R.id.Edit);
dbHelper = new DBHelper(this, dbName, null, dbVersion);
list=(ListView)findViewById(R.id.list);
edit=(EditText)findViewById(R.id.Edit);
// ▽ 필터링 부분
array= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Al);
list.setAdapter(array);
list.setTextFilterEnabled(true);
edit.addTextChangedListener(new TextWatcher()
{
public void onTextChanged(CharSequence arg0,int arg1,int arg2,int arg3)
{
}
public void beforeTextChanged(CharSequence arg0,int arg1,int arg2,int arg3)
{
}
public void afterTextChanged(Editable arg0)
{
Dictionary.this.array.getFilter().filter(arg0);
}
});
selectDB();
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
cursor.moveToPosition(position);
String str = cursor.getString(cursor.getColumnIndex("word3"));
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
}
});
}
private void selectDB()
{
db = dbHelper.getWritableDatabase();
sql = "SELECT * FROM test;";
cursor = db.rawQuery(sql, null);
while(cursor.moveToNext())
{
Al.add(cursor.getString(cursor.getColumnIndex("word")));
{
db = dbHelper.getWritableDatabase();
sql = "SELECT * FROM test;";
cursor = db.rawQuery(sql, null);
while(cursor.moveToNext())
{
Al.add(cursor.getString(cursor.getColumnIndex("word")));
}
if(cursor.getCount() > 0){
startManagingCursor(cursor);
DBAdapter dbAdapter = new DBAdapter(this, cursor);
list.setAdapter(dbAdapter);
}
if(cursor.getCount() > 0){
startManagingCursor(cursor);
DBAdapter dbAdapter = new DBAdapter(this, cursor);
list.setAdapter(dbAdapter);
}
}
}
------------------------------------------
Al에 커서로 word 를 지정해서 필터에 Al을 넣었는데.ㅠㅠ
어플을 돌리고 실행은 되는데 리스트 뷰에서
검색하면 왜 필터가 적용이 안될가여.ㅠㅠ
DB는
| ID | word | word2 | word3 |
| 0 | 단어 | 단어 | 단어 |
| 1 | 단어 | 단어 | 단어 |
| 2 | 단어 | 단어 | 단어 |
이런 형식으로 이루어져 있습니다.



