android如何为我给定的应用程序编写拖放

android如何为我给定的应用程序编写拖放,android,Android,我已经完成了待办事项列表应用程序。所有aree都做了,但我想做一件额外的事情,在我的应用程序HomeActivity中包含任务,如listview(单个项目包括复选框、textview和imageview),我想拖动大量项目。 外部如何做拖放我得到了,但我想添加到我的代码。请通读我在下面给出的代码,并建议我在哪里更改拖放 java(数据库) 包com.v3.todo 导入android.R.string; 导入android.content.ContentValues; 导入android.co

我已经完成了待办事项列表应用程序。所有aree都做了,但我想做一件额外的事情,在我的应用程序HomeActivity中包含任务,如listview(单个项目包括复选框、textview和imageview),我想拖动大量项目。 外部如何做拖放我得到了,但我想添加到我的代码。请通读我在下面给出的代码,并建议我在哪里更改拖放

java(数据库) 包com.v3.todo

导入android.R.string; 导入android.content.ContentValues; 导入android.content.Context; 导入android.database.Cursor; 导入android.database.SQLException; 导入android.database.sqlite.SQLiteDatabase; 导入android.database.sqlite.SQLiteOpenHelper; 导入android.util.Log

公共类DBAdapter{ //初始配置 公共静态最终字符串DB_NAME=“To Do”; 私有静态最终int数据库\u VER=2; 私有静态最终字符串TAG=“DBAdapter”

私有最终上下文;
私有数据库助手DBHelper;
专用数据库数据库;
//设置表格关键字
公共静态最终字符串表\u TASKS=“TASKS”;
//表查询
private static final String CREATE_TASKS=“CREATE TABLE TASKS(_idinteger主键自动递增、todo文本、日期_CREATE文本、日期_completed文本、完成的整数、orderId INTEGER NOT NULL);”;
//钥匙
公共静态最终字符串ID=“\u ID”;
公共静态最终字符串键\u TODO=“TODO”;
公共静态最终字符串键\u DATECREATE=“date\u create”;
公共静态最终字符串KEY\u DATECOMPLETED=“date\u completed”;
公共静态最终字符串键\u COMPLETED=“COMPLETED”;
公共静态最终字符串键\u ORDER=“orderId”;
公共DBAdapter(上下文ctx){
this.context=ctx;
DBHelper=新数据库助手(上下文);
}
私有静态类DatabaseHelper扩展了SQLiteOpenHelper{
公共数据库助手(上下文){
super(上下文、数据库名称、null、数据库版本);
}
@凌驾
public void onCreate(SQLiteDatabase db){
db.execSQL(创建任务);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
Log.w(标记,“将数据库从版本“+oldVersion+”升级到”
+新版本+”,将销毁所有旧数据);
db.execSQL(“如果存在任务,则删除表”);
onCreate(db);
}
}
公共DBAdapter open()引发SQLException{
db=DBHelper.getWritableDatabase();
归还这个;
}
公众假期结束(){
DBHelper.close();
}
//自定义方法
//向任务表插入数据
公共长插入任务(字符串taskNm、字符串dtCreate、字符串dtComplete、,
整数已完成,整数顺序){
ContentValues initialValues=新的ContentValues();
initialValues.put(键为TODO,taskNm);
initialValues.put(KEY_DATECREATE,dtCreate);
initialValues.put(KEY_DATECOMPLETED,dtComplete);
initialValues.put(键完成,完成);
initialValues.put(键顺序,顺序);
返回db.insert(表任务,null,初始值);
}
//获得最后优先权
public int getLastPriority(){
int maxOrder=0;
布尔标志=假;
游标cr=null;
试一试{
cr=db.rawQuery(“从中选择最大值(“+KEY\u ORDER+”)”
+表_任务,空);
cr.moveToFirst();
System.out.println(“rawQuery:+”从中选择最大值(“+KEY\u ORDER+”)
+表2(任务);
System.out.println(“Max order=“+cr.getString(0));
if(cr.getString(0)=null)
maxOrder=0;
其他的
maxOrder=Integer.parseInt(cr.getString(0));
}捕获(例外情况除外){
System.out.println(“在DBAdapter内”+ex.toString());
}最后{
cr.close();
}
返回maxOrder;
}
//获取未完成的任务
公共游标getUncompletedTask(){
游标c=db.query(TABLE_TASKS,新字符串[]{ID,KEY_TODO},
KEY_COMPLETED+“=0”,空,空,空,空,空,空);
c=db.query(TABLE_TASKS,新字符串[]{ID,KEY_TODO},KEY_COMPLETED+“=0”,null,null,null,KEY_ORDER+“ASC”,null);
返回c;
}
//完成任务
公共游标getCompletedTask(){
返回db.query(TABLE_TASKS,新字符串[]{ID,KEY_TODO},
KEY_COMPLETED+“=1”,空,空,空,空,空,空);
}
//获取任务Id
公共游标getTask\u ID(字符串taskNm){
返回db.query(TABLE_TASKS,新字符串[]{ID,KEY_TODO},KEY_TODO
+“='”+taskNm+“'”,null,null,null,null,null);
}
//获取任务名称
公共游标名称(int TID){
返回db.query(TABLE_TASKS,新字符串[]{ID,KEY_TODO},ID+“=”
+TID,空,空,空,空,空,空);
}
//得到命令
公共光标获取顺序(int TID){
返回db.query(TABLE_TASKS,新字符串[]{ID,KEY_ORDER},ID+“=”
+TID,空,空,空,空,空,空);
}
//编辑任务名称
公共布尔值updateTaskNm(int-TID,String-taskNm){
ContentValues initialValues=新的ContentValues();
initialValues.put(键为TODO,taskNm);
返回db.update(表任务,初始值,ID+“=”+TID,null)>0;
}
//删除记录
公共布尔删除任务(int TID){
返回db.delete(TABLE_TASKS,ID+“=”+TID,null)>0;
}
//取消对任务的标记
公共布尔取消标记任务(int-TID,String-dtCreate){
ContentValues initialValues=新的ContentValues();
initialValues.put(键完成,0);
initialValues.put(KEY_DATECREATE,dtCreate);
返回db.update(表任务,初始值,ID+“=”+TID,null)>0;
}
//完成任务
公共布尔setTaskComplete(int-TID,String-dtComplete){
ContentValues initialValues=新的ContentValues();
初始值。输入(完成键,1);
initialValues.put(KEY_DATECOMPLETED,dtComplete);
返回db.update(表任务,初始值,ID+“=”+TID,null)>0;
}
//更新顺序
公共布尔集合顺序(整数OId,整数TID){
System.out.println(“==OID=“+OID+”TID=“+TID”);
if(db==null)
db=DBHelper.getWritableDatabase();
如果(!db.isOpen())
private final Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;

// Set the Tables Key Words
public static final String TABLE_TASKS = "tasks";

// Table Queries
private static final String CREATE_TASKS = "CREATE TABLE tasks (_id INTEGER PRIMARY KEY AUTOINCREMENT, todo TEXT, date_create TEXT, date_completed TEXT, completed INTEGER, orderId INTEGER NOT NULL);";

// Keys
public static final String ID = "_id";
public static final String KEY_TODO = "todo";
public static final String KEY_DATECREATE = "date_create";
public static final String KEY_DATECOMPLETED = "date_completed";
public static final String KEY_COMPLETED = "completed";
public static final String KEY_ORDER = "orderId";

public DBAdapter(Context ctx) {
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper {

    public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, DATABASE_VER);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TASKS);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS Tasks");
        onCreate(db);
    }

}

public DBAdapter open() throws SQLException {
    db = DBHelper.getWritableDatabase();

    return this;
}

public void close() {
    DBHelper.close();
}

// Custom Methods

// Insert data to Task table
public long insertINtask(String taskNm, String dtCreate, String dtComplete,
        int completed, int order) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_TODO, taskNm);
    initialValues.put(KEY_DATECREATE, dtCreate);
    initialValues.put(KEY_DATECOMPLETED, dtComplete);
    initialValues.put(KEY_COMPLETED, completed);
    initialValues.put(KEY_ORDER, order);
    return db.insert(TABLE_TASKS, null, initialValues);
}

// Get Last priority
public int getLastPriority() {
    int maxOrder = 0;
    boolean flag = false;
    Cursor cr=null;
    try{
    cr = db.rawQuery("select max(" + KEY_ORDER + ") from "
            + TABLE_TASKS, null);
    cr.moveToFirst();
    System.out.println("rawQuery: " + "select max(" + KEY_ORDER + ") from "
            + TABLE_TASKS);
    System.out.println("Max order= " + cr.getString(0));
    if (cr.getString(0) == null)
        maxOrder = 0;
    else
        maxOrder = Integer.parseInt(cr.getString(0));
    } catch (Exception ex) {
        System.out.println("Within DBAdapter " + ex.toString());
    } finally {
        cr.close();
    }
    return maxOrder;

}

// Get Uncompleted Tasks
public Cursor getUncompletedTask() {
    Cursor c = db.query(TABLE_TASKS, new String[] { ID, KEY_TODO },
            KEY_COMPLETED + "= 0", null, null, null, null, null);
    c=db.query(TABLE_TASKS, new String[]{ID,KEY_TODO},KEY_COMPLETED + "= 0", null, null, null, KEY_ORDER + " ASC" ,null);
    return c;
}

// Get Completed Tasks
public Cursor getCompletedTask() {
    return db.query(TABLE_TASKS, new String[] { ID, KEY_TODO },
            KEY_COMPLETED + "= 1", null, null, null, null, null);
}

// Get Task Id
public Cursor getTask_ID(String taskNm) {
    return db.query(TABLE_TASKS, new String[] { ID, KEY_TODO }, KEY_TODO
            + "= '" + taskNm + "'", null, null, null, null, null);
}

// Get Task-Name
public Cursor getTask_Name(int TID) {
    return db.query(TABLE_TASKS, new String[] { ID, KEY_TODO }, ID + "= "
            + TID, null, null, null, null, null);
}

//Get Order
public Cursor getOrder(int TID) {
    return db.query(TABLE_TASKS, new String[] { ID, KEY_ORDER }, ID + "= "
            + TID, null, null, null, null, null);
}
// Edit Task-Name
public boolean updateTaskNm(int TID, String taskNm) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_TODO, taskNm);
    return db.update(TABLE_TASKS, initialValues, ID + "=" + TID, null) > 0;
}

// Delete a record
public boolean deleteTask(int TID) {
    return db.delete(TABLE_TASKS, ID + "=" + TID, null) > 0;
}

// Make Unmark to a task
public boolean unMarkTask(int TID,String dtCreate) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_COMPLETED, 0);
    initialValues.put(KEY_DATECREATE, dtCreate);
    return db.update(TABLE_TASKS, initialValues, ID + "=" + TID, null) > 0;
}

// Set Task complete
public boolean setTaskComplete(int TID, String dtComplete) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_COMPLETED, 1);
    initialValues.put(KEY_DATECOMPLETED, dtComplete);
    return db.update(TABLE_TASKS, initialValues, ID + "=" + TID, null) > 0;
}

//Update Order
public boolean setOrder(int OId,int TID) {
    System.out.println("==== OID="+OId+" TID="+TID);
    if(db==null)
        db = DBHelper.getWritableDatabase();

    if(!db.isOpen())
        open();

    boolean f=false;
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_ORDER, OId);
    db.execSQL("update "+TABLE_TASKS+" set "+KEY_ORDER+"="+OId+" where _id="+TID);
    //f= db.update(TABLE_TASKS, initialValues, ID + "=" + TID, null) > 0;

    return f;
}
//Get orders between--Not used
public Cursor getBetweenOrders(int fOrder,int tOrder) {
    return db.query(TABLE_TASKS, new String[] { ID, KEY_ORDER }, KEY_ORDER + " BETWEEN "+fOrder +" AND "+tOrder, null, null, null, null, null);
}

//Update all orders--not used
public boolean setAllOrders(int[] TID, int[] orderid,int count) {
    boolean f=false;
    ContentValues initialValues = new ContentValues();
    for(int i=0;i<count;i++)
    {
        initialValues.put(KEY_ORDER, orderid[i]);
        f= db.update(TABLE_TASKS, initialValues, ID + "=" + TID[i], null) > 0;
    }
    return f;
}
String date = "", time = "", dateTime = "";
// ArrayList al = new ArrayList();
static ArrayList<Task> m_tasks = new ArrayList<Task>(), t_tasks = null;
TaskAdapter m_adapter;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    this.setTitle("To-Do Lists");

    btnAdd = (Button) findViewById(R.id.btnAdd);
    edTask = (EditText) findViewById(R.id.etAddTask);
    edTask.setOnFocusChangeListener(new OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus == true) {
                if (edTask.getText().toString()
                        .compareTo("Add task here...") == 0) // default text
                {
                    edTask.setText("");
                }
            }
        }
    });

    db = new DBAdapter(HomeActivity.this);
    m_tasks = getTasks();

    if (m_tasks.size() != 0) {
        this.m_adapter = new TaskAdapter(this, R.layout.addchecktomain,
                m_tasks);
        // lv1.setAdapter(this.m_adapter);
        System.out.println("creating");
        setListAdapter(this.m_adapter);
    } else {

        RelativeLayout rl = (RelativeLayout) findViewById(R.id.layout);
        TextView tv = new TextView(this);
        tv.setText("No To-Do Lists");
        tv.setTextSize(22);
        rl.addView(tv);
    }
        mYear = c.get(Calendar.YEAR);
        mMonth = c.get(Calendar.MONTH);
        mDay = c.get(Calendar.DAY_OF_MONTH);
        mHour = c.get(Calendar.HOUR_OF_DAY);
        mMinute = c.get(Calendar.MINUTE);


    btnAdd.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            newTask = edTask.getText().toString();

            String min = Integer.toString(c.get(Calendar.MINUTE));
            String hr = Integer.toString(c.get(Calendar.HOUR));
            String dd = Integer.toString(c.get(Calendar.DATE));
            String mm = Integer.toString(c.get(Calendar.MONTH));
            String yyyy = Integer.toString(c.get(Calendar.YEAR));
            if (min.length() == 1)
                min = "0" + min;
            if (hr.length() == 1)
                hr = "0" + hr;
            if (dd.length() == 1)
                dd = "0" + dd;
            if (mm.length() == 1)
                mm = "0" + mm;
            String dtCreate = mm + "-" + dd + "-" + yyyy + " " + hr + ":"
                    + min;
            if (newTask.equals("")) {
                alertboxNeutral("Warning", "Task should not be empty!",
                        "Okay");
            }
            else if (newTask.length() < 2) {
                alertboxNeutral("Warning",
                        "Task should not be less than 2 Letters", "Okay");
            } else {
                try {
                    db.open();
                    long id1;
                    order = db.getLastPriority();
                    if (order == 0)
                        id1 = db.insertINtask(newTask, dtCreate, null, 0, 1);
                    else
                        id1 = db.insertINtask(newTask, dtCreate, null, 0,
                                order + 1);

                } catch (Exception ex) {
                    System.out.println("Within AddTask HomeActivity " + ex.toString());
                } finally {
                    db.close();
                }
                alertboxNeutral("Success", "Saved.", "Okay");
            }
        }
    });
}

// Method to fetch Uncompleted tasks from db with ID
public ArrayList<Task> getTasks() {
    t_tasks = new ArrayList<Task>();
    try {
        db.open();
        cr = db.getUncompletedTask();
        if (cr.moveToFirst()) {
            do {
                Task t1 = new Task();
                String[] str = new String[2];
                str[0] = cr.getString(0);
                str[1] = cr.getString(1);
                t1.setTaskID(cr.getString(0));
                t1.setTaskName(cr.getString(1));
                t_tasks.add(t1);
            } while (cr.moveToNext());
        }
    } catch (Exception ex) {
        System.out.println("Within Home " + ex.toString());
    } finally {
        cr.close();
        db.close();
    }

    return t_tasks;
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
    menu.setHeaderTitle("Task");
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.context_menu, menu);
    System.out.println("v.getId=" + v.getId());
    Task_Id = (Integer) v.getTag();

}

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
            .getMenuInfo();

    switch (item.getItemId()) {
    case R.id.edit_task:
        Intent i1 = new Intent(HomeActivity.this, EditTaskActivity.class);
        i1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i1);

        return true;
    case R.id.delete_task:
        // database functions
        boolean f = false;
        try {
            db.open();
            f = db.deleteTask(Task_Id);
        } catch (Exception ex) {
            System.out.println("Within Home " + ex.toString());
        } finally {
            db.close();
        }
        if (f == true)
            alertboxNeutral("Success", "Deleted.", "Okay");
        return true;
    default:
        return super.onContextItemSelected(item);
    }
}

public void alertboxNeutral(String title, String message, String positive) {
    AlertDialog.Builder alertbox = new AlertDialog.Builder(
            HomeActivity.this);
    if (title.equals("Warning")) {
        alertbox.setTitle(title);
        alertbox.setMessage(message);
        alertbox.setPositiveButton(positive,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        Intent i = new Intent(HomeActivity.this,
                                HomeActivity.class);
                        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                                | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(i);
                    }
                });
        alertbox.show();
    } else if (title.equals("Success")) {
        alertbox.setTitle(title);
        alertbox.setMessage(message);
        alertbox.setPositiveButton(positive,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        Intent i = new Intent(HomeActivity.this,
                                HomeActivity.class);
                        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                                | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(i);
                    }
                });
        alertbox.show();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

    case R.id.add_task:
        Intent i1 = new Intent(this, AddTaskActivity.class);
        i1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i1);
        break;
    case R.id.list_completed:
        Intent i2 = new Intent(this, ListCompletedActivity.class);
        i2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i2);
        break;
    case R.id.rearrange:
        Intent i3 = new Intent(this, RearrangeActivity.class);
        i3.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i3);
        break;
    case R.id.exit:
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        break;
    }

    return true;
}

/*
 * @Override protected void onPause() { // TODO Auto-generated method stub
 * super.onPause(); finish(); }
 */

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    try {
        db.open();
        m_tasks = getTasks();
    } catch (Exception ex) {
        System.out.println("Within Home " + ex.toString());
    } finally {
        db.close();
    }
    m_adapter = new TaskAdapter(this, R.layout.addchecktomain, m_tasks);

    System.out.println("notify data changed");
    // m_adapter.notifyDataSetInvalidated();
    // m_adapter.notifyDataSetChanged();
    setListAdapter(this.m_adapter);
    super.onResume();

}

/*
 * @Override public void onBackPressed() { // TODO Auto-generated method
 * stub db.open(); m_tasks = getTasks(); db.close();
 * System.out.println("notify data changed on back pressed");
 * m_adapter.notifyDataSetInvalidated(); m_adapter.notifyDataSetChanged();
 * super.onBackPressed(); }
 */
 @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case TIME_DIALOG_ID:
                return new TimePickerDialog(this,
                        mTimeSetListener, mHour, mMinute, false);
            case DATE_DIALOG_ID:
                return new DatePickerDialog(this,
                            mDateSetListener,
                            mYear, mMonth, mDay);
        }
        return null;
    }
 @Override
    protected void onPrepareDialog(int id, Dialog dialog) {
        switch (id) {
            case TIME_DIALOG_ID:
                ((TimePickerDialog) dialog).updateTime(mHour, mMinute);
                break;
            case DATE_DIALOG_ID:
                ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);
                break;
        }
    }    

private void updateDisplay() {
    //edTask.setText(new StringBuilder().append(mMonth + 1).append("-").append(mDay).append("-").append(mYear).append(" ").append(pad(mHour)).append(":").append(pad(mMinute)));

    c.setTimeInMillis(System.currentTimeMillis());
    c.clear();
    c.set(Calendar.YEAR, mYear);
    c.set(Calendar.MONTH, mMonth);
    c.set(Calendar.DAY_OF_MONTH, mDay);
    c.set(Calendar.HOUR, mHour);
    c.set(Calendar.MINUTE, mMinute);
    Intent activate = new Intent(this, getClass());
    AlarmManager alarams ;//=  (AlarmManager) this.getSystemService(ALARM_SERVICE);
    PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, activate, 0);
    alarams = (AlarmManager) getSystemService(this.ALARM_SERVICE);
    alarams.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), alarmIntent);

    /*Intent intent = new Intent(this, MyBroadcastReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(
            this.getApplicationContext(), 234324243, intent, 0);
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis()
            + (10 * 1000), pendingIntent);*/
    Toast.makeText(this, "Alarm set in 10 seconds", Toast.LENGTH_LONG).show();


}

    private DatePickerDialog.OnDateSetListener mDateSetListener =
            new DatePickerDialog.OnDateSetListener() {

                public void onDateSet(DatePicker view, int year, int monthOfYear,
                        int dayOfMonth) {
                    mYear = year;
                    mMonth = monthOfYear;
                    mDay = dayOfMonth;
                    updateDisplay();
                }
            };

    private TimePickerDialog.OnTimeSetListener mTimeSetListener =
            new TimePickerDialog.OnTimeSetListener() {

                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    mHour = hourOfDay;
                    mMinute = minute;
                    updateDisplay();
                }
            };

    private static String pad(int c) {
        if (c >= 10)
            return String.valueOf(c);
        else
            return "0" + String.valueOf(c);
    }
public TaskAdapter(Context context, int textViewResourceId,
        ArrayList<Task> tasks) {
    super(context, textViewResourceId, tasks);
    this.tasks = tasks;
    context1 = context;
    RId = textViewResourceId;
}

public int getCount() {
    return tasks.size();
}

public Task getItem(int position) {
    return tasks.get(position);
}

public long getItemId(int position) {
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
    final int pos = position;
    final int dbid;
    View v = convertView;
    ViewHolder holder;
    Task t = tasks.get(position);

    if (v == null) {
        LayoutInflater vi = (LayoutInflater) context1
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.addchecktomain, null);

        holder = new ViewHolder();
        //holder.text = (TextView) v.findViewById(t.getTaskId());
        v.setTag(holder);
        } else {
            // Get the ViewHolder back to get fast access to the TextView
            // and the ImageView.
            System.out.println(convertView.getTag());
            holder = (ViewHolder) convertView.getTag();
        }

    if (t != null) {
        chk = (CheckBox) v.findViewById(R.id.cboTask);
        tv = (TextView) v.findViewById(R.id.tvTask);
        imgAlram = (ImageView) v.findViewById(R.id.imageAlram);

        if (chk != null) {
            chk.setId(Integer.parseInt(t.getTaskId()));

            chk.setText("");
            // chk.setTag(Integer.parseInt(t.getTaskId()), t.getTaskName());

            chk.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                public void onCheckedChanged(CompoundButton buttonView,
                        boolean isChecked) {
                    int taskId = buttonView.getId();
                    if (isChecked) {
                        // /call setTaskComplete(i)
                        // / reset list view or refresh list view
                        String min = Integer.toString(c
                                .get(Calendar.MINUTE));
                        String hr = Integer.toString(c.get(Calendar.HOUR));
                        String dd = Integer.toString(c.get(Calendar.DATE));
                        String mm = Integer.toString(c.get(Calendar.MONTH));
                        String yyyy = Integer.toString(c.get(Calendar.YEAR));
                        if (min.length() == 1)
                            min = "0" + min;
                        if (hr.length() == 1)
                            hr = "0" + hr;
                        if (dd.length() == 1)
                            dd = "0" + dd;
                        if (mm.length() == 1)
                            mm = "0" + mm;
                        String dtComplete = mm + "-" + dd + "-" + yyyy
                                + " " + hr + ":" + min;
                        try {
                            db = new DBAdapter(context1);
                            db.open();
                            f = db.setTaskComplete(taskId, dtComplete);
                        } catch (Exception ex) {
                            System.out.println("Within Home "
                                    + ex.toString());
                        } finally {
                            db.close();
                        }
                        if (f == true) {
                            // HomeActivity.referesh = 1;
                            Intent intent = new Intent(context1,
                                    HomeActivity.class);
                            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                                    | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                            // HomeActivity.
                            context1.startActivity(intent);
                            Toast.makeText(context1, "Task Completed",
                                    Toast.LENGTH_LONG).show();
                        }
                    }
                }
            });
        }
        if (tv != null) {
            tv.setText(t.getTaskName());
            dbid = Integer.parseInt(t.getTaskId());
            tv.setTag(dbid);

            tv.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Toast.makeText(
                            context1,
                            "You have chosen the task: " + " "
                                    + v.getTag().toString() + "  Id: "
                                    + dbid + "::" + pos, Toast.LENGTH_LONG)
                            .show();
                    tv.setHighlightColor(android.graphics.Color.RED);
                }
            });
            ((Activity) context1).registerForContextMenu(tv);
        }
        if (imgAlram != null) {
            imgAlram.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    // Write ur code here
                    Toast.makeText(context1, "You have chosen the Alram ",
                            Toast.LENGTH_LONG).show();
                    ((Activity) context1).showDialog(DATE_DIALOG_ID);
                    ((Activity) context1).showDialog(TIME_DIALOG_ID);
                }
            });
        }
    }
    return v;
}

static class ViewHolder {
    TextView text;
}