나는 안드로이드에 익숙하지 않다. 나는 그것을 클릭 할 때 "Mark As Completed"라는 메쏘드를 만들었고, 그것을 클릭하면 데이터베이스에 참값을 설정했다. 지금 내가 원하는 것은 데이터베이스에서가 아니라 목록에서 삭제 된 해당 항목을 마킹 할 때입니다. 가능한가?안드로이드에서 삭제하지 않고 목록에서 항목을 제거하는 방법?
편집 :
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
addTasklist = (EditText)findViewById(R.id.addTasklist);
taskList_completed = (CheckBox)findViewById(R.id.completedflag);
Button ok = (Button)findViewById(R.id.add);
ok.setOnClickListener(this);
list();
}
public void list(){
db = new TodoTask_Database(getApplicationContext());
list_tasklistname = (ListView)findViewById(R.id.listview);
list = db.getAllTaskList();
adapter = new CustomAdapter(Main_Activity.this, R.layout.tasklist_row, list);
list_tasklistname.setAdapter(adapter);
db.close();
adapter.notifyDataSetChanged();
registerForContextMenu(list_tasklistname);
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
Position = info.position;
switch (item.getItemId()) {
case R.id.MarkAsCompleted:
db = new TodoTask_Database(getApplicationContext());
task = adapter.getItem(Position);
int taskList_Id = task.getTaskListId();
// here is database method which is setting item value true when mark as completed on long click listener is pressed.
db.Complete_TaskList(taskList_Id);
break;
}
return super.onOptionsItemSelected(item);
}
내 사용자 지정 목록 어댑터 :
public class CustomAdapter extends ArrayAdapter<Task> {
private List<Task> dataitem;
private Activity activity;
TodoTask_Database db;
public CustomAdapter(Activity a, int textViewResourceId, List<Task> items) {
super(a, textViewResourceId, items);
this.dataitem = items;
this.activity = a;
}
public static class ViewHolder{
public TextView tasklistTitle;
public TextView createdDate;
public CheckBox completedflag;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
final ViewHolder holder;
if (v == null) {
LayoutInflater vi =
(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.tasklist_row, null);
holder = new ViewHolder();
holder.tasklistTitle = (TextView) v.findViewById(R.id.tasklistTitle);
holder.createdDate = (TextView) v.findViewById(R.id.createdDate);
holder.completedflag = (CheckBox) v.findViewById(R.id.completedflag);
v.setTag(holder);
}
else
holder=(ViewHolder)v.getTag();
final Task custom = dataitem.get(position);
if (custom != null) {
holder.tasklistTitle.setText(custom.getTaskListTitle());
holder.createdDate.setText(custom.getTaskListCreated());
holder.completedflag.setText(custom.getTaskListCompletedFlag());
}
return v;
}
public synchronized void refresAdapter(List<Task> dataitems) {
dataitem.clear();
dataitem.addAll(dataitems);
notifyDataSetChanged();
}
}
목록 어댑터에서 해당 항목을 제거하십시오 .. –
그래, 내 사용자 지정 목록 어댑터에서이를 수행하려고합니다. 그러나 실패. – Shweta
게시 한 내용을 게시하십시오 – Raghunandan