Task를 끝내 데이터베이스와 recyclerView에서 Task를 삭제하는 기능과
recyclerView의 Item을 클릭하면 해당 Task에 저장된 풀이 링크로 이동하는 기능을 구현했습니다.
MainActivity에 다음의 코드를 추가했습니다.
public class MainActivity extends AppCompatActivity implements onItemSwipeListener {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// set recyclerView
adapter = new TaskAdapter();
adapter.setOnItemClickListener(new onTaskClickListener() {
@Override
public void onItemClick(TaskAdapter.ViewHolder holder, View view, int position) {
Task task = adapter.getItem(position);
TaskDatabase database = TaskDatabase.getInstance(getApplicationContext());
String SQL = "SELECT ADDRESS FROM " + database.TABLE_USERS + " WHERE _id = " + task.getId();
if(database != null){
Cursor cursor = database.rawQuery(SQL);
cursor.moveToNext();
String address = cursor.getString(0);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(address));
startActivity(intent);
cursor.close();
}
}
});
...
}
...
// implements onItemSwipeListener removeItem
@Override
public void removeItem(int position) {
Task task = adapter.getItem(position);
TaskDatabase database = TaskDatabase.getInstance(this);
String SQL = "DELETE FROM " + database.TABLE_USERS + " WHERE _id = " + task.getId();
if(database != null){
database.execSQL(SQL);
loadTaskListData();
}
}
removeItem 메소드를 Override해 그 안에 Task를 삭제하는 코드를 구현했습니다.
@Override
public void removeItem(int position) {
Task task = adapter.getItem(position);
TaskDatabase database = TaskDatabase.getInstance(this);
String SQL = "DELETE FROM " + database.TABLE_USERS + " WHERE _id = " + task.getId();
if(database != null){
database.execSQL(SQL);
loadTaskListData();
}
}
데이터베이스에서 해당 Item의 id를 가진 데이터를 삭제하고, recyclerView를 다시 불러오도록 만들었습니다.
adapter의 onItemClick 메소드 안에 저장된 링크의 웹페이지를 여는 코드를 작성했습니다.
adapter = new TaskAdapter();
adapter.setOnItemClickListener(new onTaskClickListener() {
@Override
public void onItemClick(TaskAdapter.ViewHolder holder, View view, int position) {
Task task = adapter.getItem(position);
TaskDatabase database = TaskDatabase.getInstance(getApplicationContext());
String SQL = "SELECT ADDRESS FROM " + database.TABLE_USERS + " WHERE _id = " + task.getId();
if(database != null){
Cursor cursor = database.rawQuery(SQL);
cursor.moveToNext();
String address = cursor.getString(0);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(address));
startActivity(intent);
cursor.close();
}
}
});
터치한 Item의 id로 데이터를 검색 해, 해당 데이터에 저장된 링크를 Intent를 이용해 웹페이지를 열도록 만들었습니다.



