在Android中如何使用微软在sql lite中显示日期? [英] How to use spinner for showing date in sql lite in android?

查看:154
本文介绍了在Android中如何使用微软在sql lite中显示日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的应用程序中有3个微调器,用于日期选择:年份 - 月 - 日例如,今天是2015-10-08,并且纺纱商会从系统自动显示此日期:
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 =horizo​​ntal
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屋!

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