Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向SQLite数据库添加更多内容_Java_Android_Sqlite_Datepicker_Spinner - Fatal编程技术网

Java 向SQLite数据库添加更多内容

Java 向SQLite数据库添加更多内容,java,android,sqlite,datepicker,spinner,Java,Android,Sqlite,Datepicker,Spinner,让我们开始吧 DatabaseHelper.java package com.example.soultaker.overtimesregistrator; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.databa

让我们开始吧

DatabaseHelper.java

package com.example.soultaker.overtimesregistrator;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "mylogs.db";
    public static final String TABLE_NAME = "mylogs_table";
    public static final String COL0 = "ID";
    public static final String COL1 = "DATE";
    public static final String COL2 = "HOURS";
    public static final String COL3 = "SHIFT";


    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME
                + "("
                + COL0 + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                + COL1 + " TEXT, "
                + COL2 + " TEXT, "
                + COL3 + " TEXT, "
                + ")"
        );
    }
        @Override
        public void onUpgrade (SQLiteDatabase db,int oldVersion, int newVersion){
            db.execSQL("DROP IF TABLE EXISTS " + TABLE_NAME);
            onCreate(db);
        }

    public boolean addData(String date, String hours, String shift){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL1,date);
        contentValues.put(COL2,hours);
        contentValues.put(COL3, shift);

        long result  = db.insert(TABLE_NAME, null, contentValues);

        if(result == -1){
            return false;
        }else{
            return true;
        }
    }

    public Cursor showData(){
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
        return data;
    }

    public boolean updateData(String id, String date, String hours, String shift){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL0,id);
        contentValues.put(COL1,date);
        contentValues.put(COL2,hours);
        contentValues.put(COL3,shift);
        db.update(TABLE_NAME, contentValues, "ID = ?", new String[] {id});
        return true;
    }
}
    import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class AddActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    DatabaseHelper mylogsDB;
    Button btn_save;
    EditText etHours;
    Spinner etShift;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);
        etHours = (EditText) findViewById(R.id.editText);
        etShift = (Spinner) findViewById(R.id.spinner);
        btn_save = (Button) findViewById(R.id.btn_save);
        mylogsDB = new DatabaseHelper(this);

        AddData();

        // Spinner click listener
        etShift.setOnItemSelectedListener(this);

        // Spinner Drop down elements
        List<String> categories = new ArrayList<>();
        categories.add("Πρωί");
        categories.add("Μεσημέρι");
        categories.add("Νύχτα");

        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);

        // Drop down layout style - list view with radio button
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        etShift.setAdapter(dataAdapter);
    }

        public void onItemSelected (AdapterView <?> parent, View view,int position, long id) {
            // On selecting a spinner item
            String item = parent.getItemAtPosition(position).toString();

            // Showing selected spinner item
            Toast.makeText(parent.getContext(), "Έχετε επιλέξει: " + item, Toast.LENGTH_LONG).show();
    }


    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
    }

    public void AddData() {
        btn_save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String hours = etHours.getText().toString();
                String shift = etShift.getSelectedItem().toString();

                boolean insertData = mylogsDB.addData(hours, shift);

                if (insertData == true) {
                    Toast.makeText(AddActivity.this, "Η αποθήκευση ολοκληρώθηκε επιτυχώς.", Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(AddActivity.this, "Ώχ,Κάτι πήγε στραβά.", Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}
package com.example.soultaker.overtimesregistrator;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    DatabaseHelper mylogsDB;
    Button btn_add, btn_view, btn_edit;
    EditText hours, etID;
    DatePicker date;
    Spinner shift;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_add = (Button) findViewById(R.id.btn_add);
        btn_edit = (Button) findViewById(R.id.btn_edit);
        btn_view = (Button) findViewById(R.id.btn_view);
        date = (DatePicker) findViewById(R.id.datePicker);
        hours = (EditText) findViewById(R.id.editText);
        shift = (Spinner) findViewById(R.id.spinner);
        mylogsDB = new DatabaseHelper(this);

        UpdateData();

        btn_add.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, AddActivity.class);
                startActivity(intent);
            }
        });

        btn_view.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, LogsView.class);
                startActivity(intent);
            }
        });
    }

        public void UpdateData(){
            btn_edit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int temp = etID.getText().toString().length();
                    if (temp > 0) {
                        boolean update = mylogsDB.updateData(etID.getText().toString(), date.getText().toString(),
                                hours.getText().toString(), shift.getText().toString());
                        if (update == true) {
                            Toast.makeText(MainActivity.this, "Successfully Updated Data!", Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(MainActivity.this, "Something Went Wrong :(.", Toast.LENGTH_LONG).show();
                        }
                    } else {
                        Toast.makeText(MainActivity.this, "You Must Enter An ID to Update :(.", Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }
}
package com.example.soultaker.overtimesregistrator;

import android.database.Cursor;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;

public class LogsView extends AppCompatActivity {

    DatabaseHelper mylogsDB;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_logs_view);

        ListView listView = (ListView) findViewById(R.id.list_view);
        mylogsDB = new DatabaseHelper(this);

        //populate an ArrayList<String> from the database and then view it
        ArrayList<String> theList = new ArrayList<>();
        Cursor data = mylogsDB.showData();
        if(data.getCount() == 0){
            Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
        }else{
            while(data.moveToNext()){
                theList.add(data.getString(1));
                ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
                listView.setAdapter(listAdapter);
            }
        }


    }
}
AddActivity.java

package com.example.soultaker.overtimesregistrator;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "mylogs.db";
    public static final String TABLE_NAME = "mylogs_table";
    public static final String COL0 = "ID";
    public static final String COL1 = "DATE";
    public static final String COL2 = "HOURS";
    public static final String COL3 = "SHIFT";


    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME
                + "("
                + COL0 + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                + COL1 + " TEXT, "
                + COL2 + " TEXT, "
                + COL3 + " TEXT, "
                + ")"
        );
    }
        @Override
        public void onUpgrade (SQLiteDatabase db,int oldVersion, int newVersion){
            db.execSQL("DROP IF TABLE EXISTS " + TABLE_NAME);
            onCreate(db);
        }

    public boolean addData(String date, String hours, String shift){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL1,date);
        contentValues.put(COL2,hours);
        contentValues.put(COL3, shift);

        long result  = db.insert(TABLE_NAME, null, contentValues);

        if(result == -1){
            return false;
        }else{
            return true;
        }
    }

    public Cursor showData(){
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
        return data;
    }

    public boolean updateData(String id, String date, String hours, String shift){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL0,id);
        contentValues.put(COL1,date);
        contentValues.put(COL2,hours);
        contentValues.put(COL3,shift);
        db.update(TABLE_NAME, contentValues, "ID = ?", new String[] {id});
        return true;
    }
}
    import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class AddActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    DatabaseHelper mylogsDB;
    Button btn_save;
    EditText etHours;
    Spinner etShift;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);
        etHours = (EditText) findViewById(R.id.editText);
        etShift = (Spinner) findViewById(R.id.spinner);
        btn_save = (Button) findViewById(R.id.btn_save);
        mylogsDB = new DatabaseHelper(this);

        AddData();

        // Spinner click listener
        etShift.setOnItemSelectedListener(this);

        // Spinner Drop down elements
        List<String> categories = new ArrayList<>();
        categories.add("Πρωί");
        categories.add("Μεσημέρι");
        categories.add("Νύχτα");

        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);

        // Drop down layout style - list view with radio button
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        etShift.setAdapter(dataAdapter);
    }

        public void onItemSelected (AdapterView <?> parent, View view,int position, long id) {
            // On selecting a spinner item
            String item = parent.getItemAtPosition(position).toString();

            // Showing selected spinner item
            Toast.makeText(parent.getContext(), "Έχετε επιλέξει: " + item, Toast.LENGTH_LONG).show();
    }


    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
    }

    public void AddData() {
        btn_save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String hours = etHours.getText().toString();
                String shift = etShift.getSelectedItem().toString();

                boolean insertData = mylogsDB.addData(hours, shift);

                if (insertData == true) {
                    Toast.makeText(AddActivity.this, "Η αποθήκευση ολοκληρώθηκε επιτυχώς.", Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(AddActivity.this, "Ώχ,Κάτι πήγε στραβά.", Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}
package com.example.soultaker.overtimesregistrator;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    DatabaseHelper mylogsDB;
    Button btn_add, btn_view, btn_edit;
    EditText hours, etID;
    DatePicker date;
    Spinner shift;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_add = (Button) findViewById(R.id.btn_add);
        btn_edit = (Button) findViewById(R.id.btn_edit);
        btn_view = (Button) findViewById(R.id.btn_view);
        date = (DatePicker) findViewById(R.id.datePicker);
        hours = (EditText) findViewById(R.id.editText);
        shift = (Spinner) findViewById(R.id.spinner);
        mylogsDB = new DatabaseHelper(this);

        UpdateData();

        btn_add.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, AddActivity.class);
                startActivity(intent);
            }
        });

        btn_view.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, LogsView.class);
                startActivity(intent);
            }
        });
    }

        public void UpdateData(){
            btn_edit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int temp = etID.getText().toString().length();
                    if (temp > 0) {
                        boolean update = mylogsDB.updateData(etID.getText().toString(), date.getText().toString(),
                                hours.getText().toString(), shift.getText().toString());
                        if (update == true) {
                            Toast.makeText(MainActivity.this, "Successfully Updated Data!", Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(MainActivity.this, "Something Went Wrong :(.", Toast.LENGTH_LONG).show();
                        }
                    } else {
                        Toast.makeText(MainActivity.this, "You Must Enter An ID to Update :(.", Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }
}
package com.example.soultaker.overtimesregistrator;

import android.database.Cursor;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;

public class LogsView extends AppCompatActivity {

    DatabaseHelper mylogsDB;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_logs_view);

        ListView listView = (ListView) findViewById(R.id.list_view);
        mylogsDB = new DatabaseHelper(this);

        //populate an ArrayList<String> from the database and then view it
        ArrayList<String> theList = new ArrayList<>();
        Cursor data = mylogsDB.showData();
        if(data.getCount() == 0){
            Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
        }else{
            while(data.moveToNext()){
                theList.add(data.getString(1));
                ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
                listView.setAdapter(listAdapter);
            }
        }


    }
}
在MainActivity中,我在这些行中得到错误

boolean update = mylogsDB.updateData(etID.getText().toString(), date.getText().toString(),
                                hours.getText().toString(), shift.getText().toString());
String date = date.getText().toString();
String hours = hours.getText().toString();
String shift = shift.getText().toString();
boolean update = mylogsDB.updateData(etID.getText().toString(), date.getText().toString(),hours.getText().toString(),shift.getText().toString());

仅在date、shift中,无法解析该方法getText

LogsView.java

package com.example.soultaker.overtimesregistrator;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "mylogs.db";
    public static final String TABLE_NAME = "mylogs_table";
    public static final String COL0 = "ID";
    public static final String COL1 = "DATE";
    public static final String COL2 = "HOURS";
    public static final String COL3 = "SHIFT";


    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME
                + "("
                + COL0 + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                + COL1 + " TEXT, "
                + COL2 + " TEXT, "
                + COL3 + " TEXT, "
                + ")"
        );
    }
        @Override
        public void onUpgrade (SQLiteDatabase db,int oldVersion, int newVersion){
            db.execSQL("DROP IF TABLE EXISTS " + TABLE_NAME);
            onCreate(db);
        }

    public boolean addData(String date, String hours, String shift){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL1,date);
        contentValues.put(COL2,hours);
        contentValues.put(COL3, shift);

        long result  = db.insert(TABLE_NAME, null, contentValues);

        if(result == -1){
            return false;
        }else{
            return true;
        }
    }

    public Cursor showData(){
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
        return data;
    }

    public boolean updateData(String id, String date, String hours, String shift){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL0,id);
        contentValues.put(COL1,date);
        contentValues.put(COL2,hours);
        contentValues.put(COL3,shift);
        db.update(TABLE_NAME, contentValues, "ID = ?", new String[] {id});
        return true;
    }
}
    import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class AddActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    DatabaseHelper mylogsDB;
    Button btn_save;
    EditText etHours;
    Spinner etShift;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);
        etHours = (EditText) findViewById(R.id.editText);
        etShift = (Spinner) findViewById(R.id.spinner);
        btn_save = (Button) findViewById(R.id.btn_save);
        mylogsDB = new DatabaseHelper(this);

        AddData();

        // Spinner click listener
        etShift.setOnItemSelectedListener(this);

        // Spinner Drop down elements
        List<String> categories = new ArrayList<>();
        categories.add("Πρωί");
        categories.add("Μεσημέρι");
        categories.add("Νύχτα");

        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);

        // Drop down layout style - list view with radio button
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        etShift.setAdapter(dataAdapter);
    }

        public void onItemSelected (AdapterView <?> parent, View view,int position, long id) {
            // On selecting a spinner item
            String item = parent.getItemAtPosition(position).toString();

            // Showing selected spinner item
            Toast.makeText(parent.getContext(), "Έχετε επιλέξει: " + item, Toast.LENGTH_LONG).show();
    }


    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
    }

    public void AddData() {
        btn_save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String hours = etHours.getText().toString();
                String shift = etShift.getSelectedItem().toString();

                boolean insertData = mylogsDB.addData(hours, shift);

                if (insertData == true) {
                    Toast.makeText(AddActivity.this, "Η αποθήκευση ολοκληρώθηκε επιτυχώς.", Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(AddActivity.this, "Ώχ,Κάτι πήγε στραβά.", Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}
package com.example.soultaker.overtimesregistrator;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    DatabaseHelper mylogsDB;
    Button btn_add, btn_view, btn_edit;
    EditText hours, etID;
    DatePicker date;
    Spinner shift;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_add = (Button) findViewById(R.id.btn_add);
        btn_edit = (Button) findViewById(R.id.btn_edit);
        btn_view = (Button) findViewById(R.id.btn_view);
        date = (DatePicker) findViewById(R.id.datePicker);
        hours = (EditText) findViewById(R.id.editText);
        shift = (Spinner) findViewById(R.id.spinner);
        mylogsDB = new DatabaseHelper(this);

        UpdateData();

        btn_add.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, AddActivity.class);
                startActivity(intent);
            }
        });

        btn_view.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, LogsView.class);
                startActivity(intent);
            }
        });
    }

        public void UpdateData(){
            btn_edit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int temp = etID.getText().toString().length();
                    if (temp > 0) {
                        boolean update = mylogsDB.updateData(etID.getText().toString(), date.getText().toString(),
                                hours.getText().toString(), shift.getText().toString());
                        if (update == true) {
                            Toast.makeText(MainActivity.this, "Successfully Updated Data!", Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(MainActivity.this, "Something Went Wrong :(.", Toast.LENGTH_LONG).show();
                        }
                    } else {
                        Toast.makeText(MainActivity.this, "You Must Enter An ID to Update :(.", Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }
}
package com.example.soultaker.overtimesregistrator;

import android.database.Cursor;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;

public class LogsView extends AppCompatActivity {

    DatabaseHelper mylogsDB;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_logs_view);

        ListView listView = (ListView) findViewById(R.id.list_view);
        mylogsDB = new DatabaseHelper(this);

        //populate an ArrayList<String> from the database and then view it
        ArrayList<String> theList = new ArrayList<>();
        Cursor data = mylogsDB.showData();
        if(data.getCount() == 0){
            Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
        }else{
            while(data.moveToNext()){
                theList.add(data.getString(1));
                ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
                listView.setAdapter(listAdapter);
            }
        }


    }
}
package com.example.soultaker.overtimesregistrator;
导入android.database.Cursor;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.widget.ArrayAdapter;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
导入java.util.ArrayList;
公共类LogsView扩展了AppCompative活动{
数据库助手mylogsDB;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u logs\u视图);
ListView ListView=(ListView)findViewById(R.id.list\u视图);
mylogsDB=新数据库助手(此);
//从数据库填充ArrayList,然后查看它
ArrayList theList=新的ArrayList();
游标数据=mylogsDB.showData();
if(data.getCount()==0){
Toast.makeText(这是“此列表中没有内容!”,Toast.LENGTH_LONG.show();
}否则{
while(data.moveToNext()){
添加(data.getString(1));
ListAdapter ListAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,theList);
setAdapter(listAdapter);
}
}
}
}
知道为什么会出现这些错误吗?我现在太糊涂了,找不到哪里错了

我正在尝试添加
日期选择器
微调器
。但是
日期选择器
还没有完成

在AddActivity中,这些行中出现了错误

boolean update = mylogsDB.updateData(etID.getText().toString(), date.getText().toString(),
                                hours.getText().toString(), shift.getText().toString());
String date = date.getText().toString();
String hours = hours.getText().toString();
String shift = shift.getText().toString();
boolean update = mylogsDB.updateData(etID.getText().toString(), date.getText().toString(),hours.getText().toString(),shift.getText().toString());
上面说

变量日期、小时数、班次可能尚未初始化

我在这里看到许多错误:

  • date.getText().toString()
    没有这样的字段变量
    date
    ,因此无法解决
    date
    的错误! 此外,如果您没有创建此变量
    date
    ,并且您将创建此变量,那么您必须在此
    String date
    中更改字符串变量
    date
    的名称,因为您无法创建具有相同名称的两个变量

  • 这同样适用于
    String hours
    Edittext hours
    ,同样,您不能创建具有相同名称的两个变量

  • 还有
    字符串移位
    微调器移位
    ,同样不能创建两个同名变量

  • shift
    微调器
    ,您可以将当前选择设置为字符串,但以下语句:

    shift.getText().toString()

    这是错误的,请使用:

    shift.getSelectedItem().toString()

  • ==

    在MainActivity中,我在这些行中得到错误

    boolean update = mylogsDB.updateData(etID.getText().toString(), date.getText().toString(),
                                    hours.getText().toString(), shift.getText().toString());
    
    String date = date.getText().toString();
    String hours = hours.getText().toString();
    String shift = shift.getText().toString();
    
    boolean update = mylogsDB.updateData(etID.getText().toString(), date.getText().toString(),hours.getText().toString(),shift.getText().toString());
    

    仅在date、shift中,无法解析该方法getText

    我在这里看到更多错误!,让我们把它们全部提取出来:

    定义了变量
    etID
    ,但从未赋值!我希望这会给出一个空指针异常

    同样同样
    shift
    是一个
    微调器

    另外
    日期
    是一个
    日期选择器
    ,要获取其字符串值,请执行以下操作:

    Date dateObj = (Date) new Date (date.getYear(), date.getMonth(), date.getDayOfMonth());
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // you can change this format as you wish!
    String dateAsString = sdf.format(dateObj);
    

    在代码字符串中,date=date.getText().toString();没有其他变量date的声明(作为参数或类字段),您可以更具体一点,因为我不太熟悉java,我曾经开发html、css和php。在这一行中,首先声明一个名为“date”的字符串。到目前为止,编译器只知道它是字符串类型的变量,并且它的值未定义。然后继续给它赋值,但值是date.getText().toString(),这没有任何意义:1)日期未定义,因此无法确定调用getText函数,2)日期当前是类型字符串,没有方法getText()。您的表根本没有创建:
    +COL3+“TEXT,”+“”
    非常感谢各位。工作顺利。谢谢你们的帮助。我终于明白了,所以我更改了名称。除了微调器外,工作正常。我想我错过了LogsView中的连接?如果我这样做了,你能告诉我怎么做吗?因为我只能看到数据库中的小时数。请解释更多,我不理解你的问题我暂时删除了日期选择器。修复了我所有的名称,现在只有微调器和editText在应用程序中。当我运行我的应用程序时,我为editText选择1个数字输入,从微调器中选择1个值,pess save,让消息显示一切正常,但是当我读取数据库时,它只在我的listView中显示editText值。没有显示微调器值。可能我需要将listView更改为其他内容?或者可能我在LogsView.java文件中缺少一些微调器代码?我想你的问题是你没有处理微调器选择,请阅读以了解如何使用微调器和处理用户选择!在阅读了您提到的文档并进行了一些研究之后,我将此代码放到AddActivity.java(我编辑了它)