点击列表视图,并能够得到timePicker [英] Clicking the listview and be able to get a timePicker

查看:106
本文介绍了点击列表视图,并能够得到timePicker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以这个列表中的以这种方式工作,当我在点击项目,该项目得到deleted.So我想要什么了,当我在项目点击,它必须告诉我TimeDialog( TimePicker )更改日期和时间。

  mList =(ListView控件)findViewById(id.list);
    mList.setOnItemClickListener(新OnItemClickListener(){        公共无效onItemClick(适配器视图<>母公司,视图V,INT位置,长的id){
            mCursor.moveToPosition(位置);
            字符串ROWID = mCursor.getString(0); //光标列0是ID
            mDb.delete(MyDbHelper.TABLE_NAME,_id =?,新的String [] {ROWID});
            mCursor.requery();
            mAdapter.notifyDataSetChanged();

* 这里是我的MainActivity,我认为这将是有帮助的!也包括在ListView!的*

 类MyDbHelper扩展SQLiteOpenHelper {私有静态最后弦乐DB_NAME =MYDB;
私有静态最终诠释DB_VERSION = 1;公共静态最后弦乐TABLE_NAME =TaskTbl;
公共静态最后弦乐COL_TXT =文本;
公共静态最后弦乐COL_DATE =日期;
公共静态最后弦乐COL_TIME =时间;
私有静态最后弦乐STRING_CREATE =CREATE TABLE+ TABLE_NAME +(_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    + COL_TXT +VARCHAR(250),+ COL_DATE +VARCHAR(20),+ COL_TIME +VARCHAR(20));;
公共MyDbHelper(上下文的背景下){
    超(背景下,DB_NAME,空,DB_VERSION);
}
@覆盖
公共无效的onCreate(SQLiteDatabase DB){
    db.execSQL(STRING_CREATE);
    ContentValues​​ CV =新ContentValues​​(2);
    cv.put(COL_TXT,新建项目);
    db.insert(TABLE_NAME,空,CV);
}@覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
    db.execSQL(DROP TABLE IF EXISTS+ TABLE_NAME);
    的onCreate(DB);
}
}
   公共类MainActivity扩展ListActivity {公共静态最终诠释RESULT_ code = 1;
MyDbHelper mHelper;
SQLiteDatabase MDB;
光标mCursor;
SimpleCursorAdapter mAdapter;
意图天气;
我的意图;
字符串文本;
字符串日期;
字符串的时间;
ListView的mList;
意图nTaskScreen;
公众的TextView timeText;
公众的TextView dateText;
公众的EditText taskText;
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    。getWindow()和setFormat(PixelFormat.RGBA_8888);
    。getWindow()addFlags(WindowManager.LayoutParams.FLAG_DITHER);
    的setContentView(R.layout.activity_main);    timeText =(的TextView)findViewById(R.id.timeTxt);
    dateText =(的TextView)findViewById(R.id.dateTxt);
    taskText =(EditText上)findViewById(R.id.editText1);    mHelper =新MyDbHelper(getApplicationContext());    按钮showBtn =(按钮)findViewById(R.id.shTask);
    showBtn.setOnClickListener(新OnClickListener(){        公共无效的onClick(视图v){
        }
    });
    按钮nTaskBtn =(按钮)findViewById(R.id.nTask);
    nTaskBtn.setOnClickListener(新OnClickListener(){        公共无效的onClick(视图v){            nTaskScreen =新意图(MainActivity.this,new_task.class);
            startActivityForResult(nTaskScreen,RESULT_ code);        }
    });    按钮wthrBtn =(按钮)findViewById(R.id.wthrBtn);
    registerForContextMenu(wthrBtn);
    mList =(ListView控件)findViewById(id.list);
    mList.setOnItemClickListener(新OnItemClickListener(){        公共无效onItemClick(适配器视图<>母公司,视图V,INT位置,长的id){
            INT HOUROFDAY = 0,分= 0;
            TimePickerDialog TP =新TimePickerDialog(MainActivity.this,
                    mTimeSetListener,HOUROFDAY,分钟,FALSE);
            tp.show();
        };
    TimePickerDialog.OnTimeSetListener mTimeSetListener =新TimePickerDialog.OnTimeSetListener(){        公共无效onTimeSet(TimePicker观点,诠释HOUROFDAY,分整型){
            // TODO自动生成方法存根
            timeText.setText(+ HOUROFDAY ++分);
        };    };    });
    }
公共无效onResume(){
    super.onResume();
    MDB = mHelper.getWritableDatabase();
    的String [] =列新的String [] {_id,MyDbHelper.COL_TXT,MyDbHelper.COL_TIME};
    mCursor = mDb.query(MyDbHelper.TABLE_NAME,列,NULL,NULL,NULL,NULL,NULL,NULL);
    的String [] =头新的String [] {MyDbHelper.COL_TXT,MyDbHelper.COL_TIME};
    mAdapter =新SimpleCursorAdapter(这一点,android.R.layout.two_line_list_item,
            mCursor,页眉,新的INT [] {android.R.id.text1,android.R.id.text2});
    mList.setAdapter(mAdapter);
}
@覆盖
保护无效的onActivityResult(INT申请code,INT结果code,意图数据){
    如果(结果code == RESULT_ code)
    {        字符串文本= data.getStringExtra(文字);
        字符串日期= data.getStringExtra(日期);
        字符串时间= data.getStringExtra(时间);        Toast.makeText(这一点,注册是全成\\ n任务:+文字+\\ NON:+日期+\\ NAT:+时间,Toast.LENGTH_LONG).show();        ContentValues​​ CV =新ContentValues​​(2);
        cv.put(MyDbHelper.COL_TXT,text.toString());
        //cv.put(MyDbHelper.COL_DATE,日期); //插入'现在'的日期
        cv.put(MyDbHelper.COL_TIME,时间);        mDb.insert(MyDbHelper.TABLE_NAME,空,CV);
        mCursor.requery();
        mAdapter.notifyDataSetChanged();
        文= NULL;            //mDb.execSQL(\"INSERT INTO TaskTbl(文本,时间,日期)VALUES(+'+文字+,+时间+','+日期+'););    }    super.onActivityResult(要求code,结果code,数据);} }


解决方案

您可以通过意向日期和时间数据,然后保存按钮,点击可以将数据保存到数据库,节省previous活动数据onResume后你可以重新加载光标并重新加载数据到listview.And请注明你究竟想要什么。
你可以这样说:

  listview.setOnItemClickListener(新OnItemClickListener(){        公共无效onItemClick(适配器视图<> L,查看ARG1,ARG2 INT,
                长ID){
            INT HOUROFDAY = 0,分= 0;
            TimePickerDialog TP =新TimePickerDialog(MainActivity.this,
                    mTimeListener,HOUROFDAY,分钟,FALSE);
            tp.show();        }
    });

在哪里mTimeListener是如下:

  TimePickerDialog.OnTimeSetListener MAXTIME =新OnTimeSetListener(){    公共无效onTimeSet(TimePicker观点,诠释HOUROFDAY,分整型){
        // TODO自动生成方法存根
        textview.setText(+ HOUROFDAY ++分);
    }
};

希望它为你...

So this list its working in this way,when i click on the item,the item get deleted.So what i want its that when i click on the item,its have to show me the TimeDialog(TimePicker) to change date and time.

    mList = (ListView) findViewById(id.list);
    mList.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> parent, View v, int position, long id)       {
            mCursor.moveToPosition(position);
            String rowId = mCursor.getString(0); //Column 0 of the cursor is the id
            mDb.delete(MyDbHelper.TABLE_NAME, "_id = ?", new String[]{rowId});
            mCursor.requery();
            mAdapter.notifyDataSetChanged();

*Here is my MainActivity,I think this will be helpful!!Include also the Listview!*

class MyDbHelper extends SQLiteOpenHelper {

private static final String DB_NAME = "mydb";
private static final int DB_VERSION = 1;

public static final String TABLE_NAME = "TaskTbl";
public static final String COL_TXT = "Text";
public static final String COL_DATE = "Date";
public static final String COL_TIME = "Time";
private static final String STRING_CREATE = "CREATE TABLE "+TABLE_NAME+" (_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "
    +COL_TXT+" VARCHAR(250), "+COL_DATE+" VARCHAR(20), "+COL_TIME+" VARCHAR(20));";


public MyDbHelper(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(STRING_CREATE);
    ContentValues cv = new ContentValues(2);
    cv.put(COL_TXT, "New Entry");
    db.insert(TABLE_NAME, null, cv);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
    onCreate(db);
}
}


   public class MainActivity extends ListActivity {

public static final int RESULT_CODE = 1; 


MyDbHelper mHelper;
SQLiteDatabase mDb;
Cursor mCursor;
SimpleCursorAdapter mAdapter;
Intent weather;     
Intent i;
String text;
String date;
String time;
ListView mList;
Intent nTaskScreen ;


public TextView timeText;
public TextView dateText;
public EditText taskText;




@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFormat(PixelFormat.RGBA_8888);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);
    setContentView(R.layout.activity_main);

    timeText = (TextView) findViewById(R.id.timeTxt);
    dateText = (TextView) findViewById(R.id.dateTxt);
    taskText = (EditText) findViewById(R.id.editText1);

    mHelper = new MyDbHelper(getApplicationContext());

    Button showBtn = (Button) findViewById(R.id.shTask);
    showBtn.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {




        }
    });


    Button nTaskBtn = (Button) findViewById(R.id.nTask);
    nTaskBtn.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

            nTaskScreen = new Intent(MainActivity.this, new_task.class);
            startActivityForResult(nTaskScreen, RESULT_CODE);

        }
    });

    Button wthrBtn = (Button) findViewById(R.id.wthrBtn);
    registerForContextMenu(wthrBtn);


    mList = (ListView) findViewById(id.list);
    mList.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {


            int hourOfDay = 0, minute = 0;




            TimePickerDialog tp = new TimePickerDialog(MainActivity.this,
                    mTimeSetListener, hourOfDay, minute, false);
            tp.show();
        };


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

        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            // TODO Auto-generated method stub
            timeText.setText("" + hourOfDay + "" + minute);
        };

    };

    });
    }


public void onResume() {
    super.onResume();
    mDb = mHelper.getWritableDatabase();
    String[] columns = new String[] {"_id", MyDbHelper.COL_TXT, MyDbHelper.COL_TIME};
    mCursor = mDb.query(MyDbHelper.TABLE_NAME, columns, null, null, null, null, null, null);
    String[] headers = new String[] {MyDbHelper.COL_TXT, MyDbHelper.COL_TIME};
    mAdapter = new SimpleCursorAdapter(this, android.R.layout.two_line_list_item,
            mCursor, headers, new int[]{android.R.id.text1, android.R.id.text2});
    mList.setAdapter(mAdapter);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode==RESULT_CODE)
    {

        String text = data.getStringExtra("text");
        String date = data.getStringExtra("date");
        String time = data.getStringExtra("time");

        Toast.makeText(this, "Registration was successfull! \nTask: " +text + "\nOn: " + date + "\nat:" + time, Toast.LENGTH_LONG).show();

        ContentValues cv = new ContentValues(2);
        cv.put(MyDbHelper.COL_TXT, text.toString());
        //cv.put(MyDbHelper.COL_DATE, date); //Insert 'now' as the date
        cv.put(MyDbHelper.COL_TIME, time);

        mDb.insert(MyDbHelper.TABLE_NAME, null, cv);
        mCursor.requery();
        mAdapter.notifyDataSetChanged();
        text = null;

            //mDb.execSQL("INSERT INTO TaskTbl (text,time,date) VALUES(" + "'" + text + "', '" + time + "', '" + date + "');");      

    }

    super.onActivityResult(requestCode, resultCode, data);

}



 }

解决方案

You can pass intent with date and time data and then on save button click you can save that data into Database and After saving data onResume of previous activity you can reload cursor and reload data into listview.And please state that what you exactly want. You can do it like this:

listview.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> l, View arg1, int arg2,
                long id) {
            int hourOfDay = 0, minute = 0;


            TimePickerDialog tp = new TimePickerDialog(MainActivity.this,
                    mTimeListener, hourOfDay, minute, false);
            tp.show();

        }
    });

Where mTimeListener is as below:

TimePickerDialog.OnTimeSetListener maxtime = new OnTimeSetListener() {

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // TODO Auto-generated method stub
        textview.setText("" + hourOfDay + "" + minute);
    }
};

Hope it works for you...

这篇关于点击列表视图,并能够得到timePicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆