点击列表视图,并能够得到timePicker视图、列表、timePicker

2023-09-07 13:32:16 作者:听风念旧人

所以这个列表中的以这种方式工作,当我在点击项目,该项目得到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,数据);} } 

解决方案 win10 64位 ,Excel2016如何加载Microsoft Date And Time Picker Control日历插件 网上方法尝试均无效

您可以通过意向日期和时间数据,然后保存按钮,点击可以将数据保存到数据库,节省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...