0
나는 listview가있는 단편을 가지고 있으며 그 안에 쿼리를 사용하여 데이터를 설정합니다. 탐색 창에서 조각을 선택하면 진행률 표시 줄을 구현하기 위해 asynctask를 사용하여 데이터를 선택하고 설정하는 데이터베이스 작업을 어떻게 수행 할 수 있습니까? 사전에asynctask를 사용하여 데이터베이스 작업을 수행하여 진행률 막대를 구현하는 방법은 무엇입니까?
public class FragmentOne extends Fragment {
ListView lv;
MyAdapter myAdapter;
SearchView sv;
ArrayList<MyObject> listMyObject;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one, container, false);
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
sv = (SearchView) getView().findViewById(R.id.searchView);
lv = (ListView) getView().findViewById(R.id.listView);
setData("");
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
setData(newText);
return false;
}
});
}
public void setData(String params) {
String query = "select *, count(*) as num from table where field_1 like '" + params + "%' group by field_1 order by field_1";
listMyObject= new ArrayList<>();
DBHelper dbHelper;
SQLiteDatabase sqLiteDatabase;
String ... ;
int ...;
dbHelper = DBHelper.getInstance(getActivity().getApplicationContext());
sqLiteDatabase = dbHelper.getReadableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery(query, null);
if (cursor.getCount() > 0) {
if (cursor.moveToFirst()) {
do {
...
listMyObject.add(new MyObject(...));
} while (cursor.moveToNext());
}
}
arrayAdapter = new MyAdapter(getActivity(), R.layout.listview_row, listMyObject);
lv.setAdapter(myAdapter);
dbHelper.close();
}
감사 :
이
내 조각이다. 이 같은