在Android中如何使用微软在sql lite中显示日期? [英] How to use spinner for showing date in sql lite in android?
问题描述
year-微调显示2015
月份微调显示10
日间微调显示08
虽然用户可以通过下拉选择其他选项来更改它们。最后这些数据必须保存在我的sql-lite数据库中。我不知道他们怎么样,请帮助我。谢谢!
这是我的代码:
我的应用程序描述是在AddVow被点击之后,用户添加一些数据作为数字,date.number由编辑文本取代,日期由微调器(如上所述)采用。
MyActivity.class
public class MyActivity extends Activity {
private ListView listView;
private AddVowAdapter adapter;
private DataBaseClass classDB;
私有SQLiteDatabase sqlDB;
private ArrayList< String> vowId = new ArrayList< String>();
private ArrayList< String> vow_number = new ArrayList< String>();
private ArrayList< String> vow_start = new ArrayList< String>();
private AlertDialog.Builder build; //编辑/删除选项
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView =(ListView)findViewById(R.id.ListView);
classDB = new DataBaseClass(this);
//编辑和删除代码
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> adapterView,查看视图,final int i,final long l){
//创建对话框
build = new AlertDialog.Builder(MyActivity.this);
//编辑
build.setNegativeButton (ویرایشکردننذز,
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,
int which){
Intent edit_intent = new Intent (getApplicationContext(),AddVowActivity.class);
edit_intent.putExtra(id,vowId.get(i));
edit_intent.putExtra(number,vow_number.get(i));
edit_intent.putExtr a(startDate,vow_start.get(i));
startActivity(edit_intent)
dialog.cancel();
}
});
AlertDialog alert = build.create();
alert.show();
返回true;
}
});
}
// *****************添加VOW $的菜单按钮b $ b public boolean onCreateOptionsMenu(菜单菜单){
getMenuInflater()。inflate(R.menu.add_vow,menu);
返回true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{super.onOptionsItemSelected(item);
switch(item.getItemId()){
case R.id.add_vow_menu:
Intent intent = new Intent(getApplicationContext(),AddVowActivity.class);
intent.putExtra(update,false);
startActivity(intent);
返回true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onResume(){
displayData();
super.onResume();
}
private void displayData(){//显示来自SQLite
sqlDB = classDB.getWritableDatabase()的数据;
游标mCursor = sqlDB.rawQuery(SELECT * FROM+ DataBaseClass.VOW_TABLE_NAME,null);
vowId.clear();
vow_number.clear();
vow_start.clear();
if(mCursor.moveToFirst()){
do {
vowId.add(mCursor.getString(mCursor.getColumnIndex(DataBaseClass.VOW_COLUMN_ID)));
vow_number.add(mCursor.getString(mCursor.getColumnIndex(DataBaseClass.VOW_COLUMN_NUMBER)));
vow_start.add(mCursor.getString(mCursor.getColumnIndex(DataBaseClass.VOW_COLUMN_START_DATE)));
} while(mCursor.moveToNext());
}
AddVowAdapter adapter = new AddVowAdapter(this,vowId,vow_number,vow_start);
listView.setAdapter(adapter);
mCursor.close();
}
}
AddVowActivity.class
public class AddVowActivity extends Activity implements AdapterView.OnItemSelectedListener {
private EditText addNUM;
private Spinner addYEAR;
private Spinner addMONTH;
私人Spinner addDAY;
private Button insertBTN;
private Button deleteBTN;
private DataBaseClass classDB;
私有SQLiteDatabase sqlDB;
private String id;
private String number;
private String startDate;
private String startDateFormat;
private boolean isUpdate;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.add_vow);
classDB = new DataBaseClass(this);
addNUM =(EditText)findViewById(R.id.addNum);
addYEAR =(Spinner)findViewById(R.id.addYear);
addMONTH =(Spinner)findViewById(R.id.addMonth);
addDAY =(Spinner)findViewById(R.id.addDay);
insertBTN =(Button)findViewById(R.id.insert);
deleteBTN =(Button)findViewById(R.id.deleteBTN);
isUpdate = getIntent()。getExtras()。getBoolean(vowUpdate);
if(isUpdate){
id = getIntent()。getExtras()。getString(id);
number = getIntent()。getExtras()。getString(number);
startDate = getIntent()。getExtras()。getString(startDate);
addNUM.setText(number);
}
insertBTN.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
number = addNUM.getText()。toString()。trim();
startDate = startDateFormat.trim();
}
});
// SPINNERS
ArrayList< String> years = new ArrayList< String>();
int minYear = 2000; (int i = minYear; i< = 2020; i ++){
years.add(String.valueOf(i));
}
ArrayAdapter< String> yearAdapter = new ArrayAdapter< String>(this,android.R.layout.simple_list_item_1,years);
addYEAR.setAdapter(yearAdapter);
ArrayList< String> months = new ArrayList< String>(); (int i = 1; i <= 12; i ++){
months.add(String.format(%02d,i));
}
ArrayAdapter< String> monthAdapter = new ArrayAdapter< String>(this,android.R.layout.simple_list_item_1,months);
addMONTH.setAdapter(monthAdapter);
ArrayList< String> dates = new ArrayList< String>(); (int i = 1; i <= 31; i ++){
dates.add(String.format(%02d,i));
}
ArrayAdapter< String> dateAdapter = new ArrayAdapter< String>(this,android.R.layout.simple_list_item_1,dates);
addDAY.setAdapter(dateAdapter);
日历calendar = Calendar.getInstance();
addDAY.setSelection(calendar.get(Calendar.DATE)-1);
addMONTH.setSelection(calendar.get(Calendar.MONTH));
addYEAR.setSelection(calendar.get(Calendar.YEAR)-minYear);
addDAY.setOnItemSelectedListener(this);
addMONTH.setOnItemSelectedListener(this);
addYEAR.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected (AdapterView<?> parent,View view,int position,long id){
switch(view.getId()){
case R.id.addDay:
打破;
case R.id.addMonth://根据月份和年份相应地更改dateadapter。
break;
case R.id.addYear://根据月份和年份相应地更改dateadapter。
break;
}
String dayNO = addDAY.getSelectedItem()。toString();
String monthNo = addMONTH.getSelectedItem()。toString();
String yearNO = addYEAR.getSelectedItem()。toString();
Log.d(AddVowActivity,onItemSelected:+ dayNO ++ monthNo ++ yearNO +);
//将您的日期格式存储在您的数据库中。
startDateFormat = yearNO + - + monthNo + - + dayNO;
}
@Override
public void onNothingSelected(AdapterView<?> parent){
}
private void saveData(){
sqlDB = classDB.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DataBaseClass.VOW_COLUMN_NUMBER,number);
values.put(DataBaseClass.VOW_COLUMN_START_DATE,startDate);
System.out.println();
if(isUpdate)
{
//用新数据更新数据
sqlDB.update(DataBaseClass.VOW_TABLE_NAME,values,DataBaseClass.VOW_COLUMN_ID +=+ id,null) ;
} else {
//将数据插入数据库
sqlDB.insert(DataBaseClass.VOW_TABLE_NAME,null,values);
}
//关闭数据库
sqlDB.close();
finish();
}
}
AddVowAdapter.class:
public class AddVowAdapter extends BaseAdapter {
private Context context;
private ArrayList< String> VId;
private ArrayList< String> Vnumber;
private ArrayList< String> Vstart;
public ArrayList< Integer> selectedViewsPositions = new ArrayList< Integer>();
public Cursor dbCursor;
public AddVowAdapter(Context c,ArrayList< String> id,ArrayList< String> number,ArrayList< String> start){
context =
VId = id;
Vnumber = number;
Vstart = start;
}
@Override
public int getCount(){
return VId.size();
}
@Override
public Object getItem(int i){
return null;
}
@Override
public long getItemId(int i){
return 0;
}
@Override
public View getView(int i,View view,ViewGroup viewGroup){
Holder mHolder;
LayoutInflater layoutInflater;
if(view == null){
layoutInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.vow_list_item,null);
mHolder = new Holder();
mHolder.txt_id =(TextView)view.findViewById(R.id.id);
mHolder.txt_VNumber =(TextView)view.findViewById(R.id.number_text);
mHolder.txt_VStart =(TextView)view.findViewById(R.id.start_text);
view.setTag(mHolder);
} else {
mHolder =(Holder)view.getTag();
}
mHolder.txt_id.setText(VId.get(i));
mHolder.txt_VNumber.setText(Vnumber.get(i));
mHolder.txt_VStart.setText(Vstart.get(i));
返回视图;
}
public class Holder {
TextView txt_id;
TextView txt_VNumber;
TextView txt_VStart;
}
DataBaseClass.class:
public class DataBaseClass extends SQLiteOpenHelper {
static String DATABASE_NAME =user's vowes;
public static final String VOW_TABLE_NAME =vowing;
public static final String VOW_COLUMN_ID =id;
public static final String VOW_COLUMN_NUMBER =number;
public static final String VOW_COLUMN_START_DATE =startDate;
public DataBaseClass(Context context){
super(context,DATABASE_NAME,null,1);
@Override
public void onCreate(SQLiteDatabase db){
String CREATE_TABLE =CREATE TABLE+ VOW_TABLE_NAME ++
( + VOW_COLUMN_ID +INTEGER PRIMARY KEY,+
VOW_COLUMN_NUMBER +TEXT,+
VOW_COLUMN_START_DATE +TEXT);
db.execSQL(CREATE_TABLE);
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
db.execSQL(DROP TABLE IF EXISTS+ VOW_TABLE_NAME) ;
onCreate(db);
}
}
这是LogCat:
07-19 17:24:23.047 1884-2184 /? V / AudioPolicyManagerBase:setOutputDevice()output 2 device 0002 force 0 delayMs 0
07-19 17:24 :23.047 1884-2154 /? D / AudioHardwareTinyALSA:OutALSA :: setDevice:mode = 0,newDevice = 0x2,currentDevice = 0x2,force = 0
07-19 17:24:23.277 1884-16827 /? V / AudioPolicyManagerBase:setOutputDevice()output 2 device 0000 force 0 delayMs 184
这样使用
public class SpinActivity extends Activity implements AdapterView.OnItemSelectedListener {
private Spinner spYear;
私人Spinner spMonth;
私人Spinner spDate;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner_date);
spYear =(Spinner)findViewById(R.id.sp_year);
spMonth =(Spinner)findViewById(R.id.sp_month);
spDate =(Spinner)findViewById(R.id.sp_date);
ArrayList< String> years = new ArrayList;();
int minYear = 1980; (int i = minYear; i< = 2020; i ++){
years.add(String.valueOf(i));
}
ArrayAdapter< String> yearAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,years);
spYear.setAdapter(yearAdapter);
ArrayList< String> months = new ArrayList<>(); (int i = 1; i <= 12; i ++){
months.add(String.format(%02d,i));
}
ArrayAdapter< String> monthAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,months);
spMonth.setAdapter(monthAdapter);
ArrayList< String> dates = new ArrayList<>(); (int i = 1; i <= 31; i ++){
dates.add(String.format(%02d,i));
}
ArrayAdapter< String> dateAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,dates);
spDate.setAdapter(dateAdapter);
日历calendar = Calendar.getInstance();
spDate.setSelection(calendar.get(Calendar.DATE)-1);
spMonth.setSelection(calendar.get(Calendar.MONTH));
spYear.setSelection(calendar.get(Calendar.YEAR)-minYear);
spDate.setOnItemSelectedListener(this);
spMonth.setOnItemSelectedListener(this);
spYear.setOnItemSelectedListener(this);
@Override
public void onItemSelected(AdapterView<?&parent; View,int position,long id){
switch(view.getId )){
case R.id.sp_date:
break;
case R.id.sp_month://根据月份和年份相应地更改dateadapter。
break;
case R.id.sp_year://根据月份和年份相应地更改dateadapter。
break;
}
String date = spDate.getSelectedItem()。toString();
String month = spMonth.getSelectedItem()。toString();
String year = spYear.getSelectedItem()。toString();
Log.d(SpinActivity,onItemSelected:+ date ++ month ++年);
//将您的日期格式存储在您的数据库中。
}
@Override
public void onNothingSelected(AdapterView<?&parent){
}
}
layout(activity_spinner_date):
<?xml version =1.0encoding =utf-8?>
< LinearLayout xmlns:android =http://schemas.android.com/apk/res/android
android:orientation =vertical
android:layout_width =match_parent
android:layout_height =match_parent>
< LinearLayout
android:layout_width =250dp
android:orientation =horizontal
android:layout_height =wrap_content>
< Spinner
android:id =@ + id / sp_year
android:layout_weight =1
android:layout_width =wrap_content
android:layout_height =wrap_content/>
< Spinner
android:id =@ + id / sp_month
android:layout_width =wrap_content
android:layout_weight =1
android:layout_height =wrap_content/>
< Spinner
android:id =@ + id / sp_date
android:layout_width =wrap_content
android:layout_weight =1
android:layout_height =wrap_content/>
< / LinearLayout>
< / LinearLayout>
I want to have 3 spinner in my app that are for date picking like this: Year – Month- Day For example, today is 2015-10-08 and spinners show this date automatically from system: year-spinner shows 2015 Month-spinner shows 10 Day-spinner shows 08 Although users can change them with dropping down and selecting other one. At last these data must be save in my sql-lite data base. I don't know how to them, please help me.thanks!
This is my code:
my app description is after AddVow is clicked, user add some data as number and date.number is taken by edit text and date is taken by spinner(as i describe above)
MyActivity.class:
public class MyActivity extends Activity {
private ListView listView;
private AddVowAdapter adapter;
private DataBaseClass classDB;
private SQLiteDatabase sqlDB;
private ArrayList<String> vowId = new ArrayList<String>();
private ArrayList<String> vow_number = new ArrayList<String>();
private ArrayList<String> vow_start = new ArrayList<String>();
private AlertDialog.Builder build; // options for Edit/Delete
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.ListView);
classDB =new DataBaseClass(this);
// edit and delete code
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view,final int i,final long l) {
// creating dialog
build = new AlertDialog.Builder(MyActivity.this);
//Edit
build.setNegativeButton("ویرایش کردن نذز",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
Intent edit_intent = new Intent(getApplicationContext(), AddVowActivity.class);
edit_intent.putExtra("id", vowId.get(i));
edit_intent.putExtra("number", vow_number.get(i));
edit_intent.putExtra("startDate", vow_start.get(i));
startActivity(edit_intent);
dialog.cancel();
}
});
AlertDialog alert = build.create();
alert.show();
return true;
}
});
}
//***************** Menu Button for adding VOW
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.add_vow, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{ super.onOptionsItemSelected(item);
switch(item.getItemId()){
case R.id.add_vow_menu:
Intent intent = new Intent(getApplicationContext(),AddVowActivity.class);
intent.putExtra("update",false);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onResume() {
displayData();
super.onResume();
}
private void displayData() { //displays data from SQLite
sqlDB = classDB.getWritableDatabase();
Cursor mCursor = sqlDB.rawQuery("SELECT * FROM "+DataBaseClass.VOW_TABLE_NAME, null);
vowId.clear();
vow_number.clear();
vow_start.clear();
if (mCursor.moveToFirst()) {
do {
vowId.add(mCursor.getString(mCursor.getColumnIndex(DataBaseClass.VOW_COLUMN_ID)));
vow_number.add(mCursor.getString(mCursor.getColumnIndex(DataBaseClass.VOW_COLUMN_NUMBER)));
vow_start.add(mCursor.getString(mCursor.getColumnIndex(DataBaseClass.VOW_COLUMN_START_DATE)));
} while (mCursor.moveToNext());
}
AddVowAdapter adapter = new AddVowAdapter(this,vowId, vow_number , vow_start);
listView.setAdapter(adapter);
mCursor.close();
}
}
AddVowActivity.class:
public class AddVowActivity extends Activity implements AdapterView.OnItemSelectedListener{
private EditText addNUM;
private Spinner addYEAR;
private Spinner addMONTH;
private Spinner addDAY;
private Button insertBTN;
private Button deleteBTN;
private DataBaseClass classDB;
private SQLiteDatabase sqlDB;
private String id;
private String number;
private String startDate;
private String startDateFormat;
private boolean isUpdate;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_vow);
classDB = new DataBaseClass(this);
addNUM = (EditText) findViewById(R.id.addNum);
addYEAR = (Spinner) findViewById(R.id.addYear);
addMONTH = (Spinner) findViewById(R.id.addMonth);
addDAY = (Spinner) findViewById(R.id.addDay);
insertBTN = (Button) findViewById(R.id.insert);
deleteBTN = (Button) findViewById(R.id.deleteBTN);
isUpdate=getIntent().getExtras().getBoolean("vowUpdate");
if(isUpdate){
id=getIntent().getExtras().getString("id");
number=getIntent().getExtras().getString("number");
startDate=getIntent().getExtras().getString("startDate");
addNUM.setText(number);
}
insertBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
number=addNUM.getText().toString().trim();
startDate= startDateFormat.trim();
}
});
//SPINNERS
ArrayList<String> years=new ArrayList<String>();
int minYear=2000;
for(int i=minYear; i<=2020; i++){
years.add(String.valueOf(i));
}
ArrayAdapter<String> yearAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, years);
addYEAR.setAdapter(yearAdapter);
ArrayList<String> months=new ArrayList<String>();
for(int i=1; i<=12; i++){
months.add(String.format("%02d", i));
}
ArrayAdapter<String> monthAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, months);
addMONTH.setAdapter(monthAdapter);
ArrayList<String> dates=new ArrayList<String>();
for(int i=1; i<=31; i++){
dates.add(String.format("%02d", i));
}
ArrayAdapter<String> dateAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dates);
addDAY.setAdapter(dateAdapter);
Calendar calendar=Calendar.getInstance();
addDAY.setSelection(calendar.get(Calendar.DATE)-1);
addMONTH.setSelection(calendar.get(Calendar.MONTH));
addYEAR.setSelection(calendar.get(Calendar.YEAR)-minYear);
addDAY.setOnItemSelectedListener(this);
addMONTH.setOnItemSelectedListener(this);
addYEAR.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (view.getId()){
case R.id.addDay:
break;
case R.id.addMonth:// change accordingly dateadapter in based on month and year.
break;
case R.id.addYear:// change accordingly dateadapter in based on month and year.
break;
}
String dayNO=addDAY.getSelectedItem().toString();
String monthNo=addMONTH.getSelectedItem().toString();
String yearNO=addYEAR.getSelectedItem().toString();
Log.d("AddVowActivity", "onItemSelected :"+dayNO+" "+monthNo+" "+yearNO+"");
// store your date format in your database here.
startDateFormat = yearNO+ "-" + monthNo + "-" + dayNO;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
private void saveData(){
sqlDB=classDB.getWritableDatabase();
ContentValues values=new ContentValues();
values.put(DataBaseClass.VOW_COLUMN_NUMBER,number);
values.put(DataBaseClass.VOW_COLUMN_START_DATE,startDate);
System.out.println("");
if(isUpdate)
{
//update database with new data
sqlDB.update(DataBaseClass.VOW_TABLE_NAME, values, DataBaseClass.VOW_COLUMN_ID + "=" + id, null);
}else {
//insert data into database
sqlDB.insert(DataBaseClass.VOW_TABLE_NAME, null, values);
}
//close database
sqlDB.close();
finish();
}
}
AddVowAdapter.class:
public class AddVowAdapter extends BaseAdapter {
private Context context;
private ArrayList<String> VId;
private ArrayList<String> Vnumber;
private ArrayList<String> Vstart;
public ArrayList<Integer> selectedViewsPositions = new ArrayList<Integer>();
public Cursor dbCursor;
public AddVowAdapter(Context c , ArrayList<String> id, ArrayList<String> number , ArrayList<String> start){
context=c;
VId=id;
Vnumber=number;
Vstart= start;
}
@Override
public int getCount() {
return VId.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Holder mHolder;
LayoutInflater layoutInflater;
if (view == null) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.vow_list_item, null);
mHolder = new Holder();
mHolder.txt_id = (TextView) view.findViewById(R.id.id);
mHolder.txt_VNumber = (TextView) view.findViewById(R.id.number_text);
mHolder.txt_VStart = (TextView) view.findViewById(R.id.start_text);
view.setTag(mHolder);
} else {
mHolder = (Holder) view.getTag();
}
mHolder.txt_id.setText(VId.get(i));
mHolder.txt_VNumber.setText(Vnumber.get(i));
mHolder.txt_VStart.setText(Vstart.get(i));
return view;
}
public class Holder {
TextView txt_id;
TextView txt_VNumber;
TextView txt_VStart;
}
DataBaseClass.class:
public class DataBaseClass extends SQLiteOpenHelper {
static String DATABASE_NAME = "user's vowes";
public static final String VOW_TABLE_NAME = "vowing";
public static final String VOW_COLUMN_ID = "id";
public static final String VOW_COLUMN_NUMBER = "number";
public static final String VOW_COLUMN_START_DATE ="startDate";
public DataBaseClass(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE="CREATE TABLE "+VOW_TABLE_NAME+" " +
"("+VOW_COLUMN_ID+" INTEGER PRIMARY KEY, "+
VOW_COLUMN_NUMBER+" TEXT, "+
VOW_COLUMN_START_DATE+" TEXT)";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+VOW_TABLE_NAME);
onCreate(db);
}
}
and this is LogCat:
07-19 17:24:23.047 1884-2184/? V/AudioPolicyManagerBase﹕ setOutputDevice() output 2 device 0002 force 0 delayMs 0
07-19 17:24:23.047 1884-2154/? D/AudioHardwareTinyALSA﹕ OutALSA::setDevice: mode = 0, newDevice=0x2, currentDevice=0x2 ,force= 0 07-19 17:24:23.277 1884-16827/? V/AudioPolicyManagerBase﹕ setOutputDevice() output 2 device 0000 force 0 delayMs 184
Use like this,
public class SpinActivity extends Activity implements AdapterView.OnItemSelectedListener{
private Spinner spYear;
private Spinner spMonth;
private Spinner spDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner_date);
spYear = (Spinner) findViewById(R.id.sp_year);
spMonth = (Spinner) findViewById(R.id.sp_month);
spDate = (Spinner) findViewById(R.id.sp_date);
ArrayList<String> years=new ArrayList<>();
int minYear=1980;
for(int i=minYear; i<=2020; i++){
years.add(String.valueOf(i));
}
ArrayAdapter<String> yearAdapter=new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, years);
spYear.setAdapter(yearAdapter);
ArrayList<String> months=new ArrayList<>();
for(int i=1; i<=12; i++){
months.add(String.format("%02d", i));
}
ArrayAdapter<String> monthAdapter=new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, months);
spMonth.setAdapter(monthAdapter);
ArrayList<String> dates=new ArrayList<>();
for(int i=1; i<=31; i++){
dates.add(String.format("%02d", i));
}
ArrayAdapter<String> dateAdapter=new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dates);
spDate.setAdapter(dateAdapter);
Calendar calendar=Calendar.getInstance();
spDate.setSelection(calendar.get(Calendar.DATE)-1);
spMonth.setSelection(calendar.get(Calendar.MONTH));
spYear.setSelection(calendar.get(Calendar.YEAR)-minYear);
spDate.setOnItemSelectedListener(this);
spMonth.setOnItemSelectedListener(this);
spYear.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (view.getId()){
case R.id.sp_date:
break;
case R.id.sp_month:// change accordingly dateadapter in based on month and year.
break;
case R.id.sp_year:// change accordingly dateadapter in based on month and year.
break;
}
String date=spDate.getSelectedItem().toString();
String month=spMonth.getSelectedItem().toString();
String year=spYear.getSelectedItem().toString();
Log.d("SpinActivity", "onItemSelected :"+date+" "+month+" "+year);
// store your date format in your database here.
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
layout (activity_spinner_date):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="250dp"
android:orientation="horizontal"
android:layout_height="wrap_content">
<Spinner
android:id="@+id/sp_year"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/sp_month"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/sp_date"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
这篇关于在Android中如何使用微软在sql lite中显示日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!