我没有看到显示的数据库中加载的所有表告诉我回收器视图未附加到布局。
数据库
public class SqliteHelperDB extends SQLiteOpenHelper {
private static SqliteHelperDB dbInstance = null;
private static SQLiteDatabase db;
//TODO NOME DEL DATABASE
private static final String DATABASE = "Gticket.db";
//TODO DATABASE VERSION
private static final int DB_VERSION = 1;
//TODO OVERRIDE COSTRUCTOR
public SqliteHelperDB(Context context) {
super(context, DATABASE, null, DB_VERSION);
}
public static SqliteHelperDB getInstance(Context context)
{
if (dbInstance == null)
{
dbInstance = new SqliteHelperDB(context);
db = dbInstance.getWritableDatabase();
}
return dbInstance;
}
//TODO CREAZIONE TicketInfo TABELLA usando SQL query
@Override
public void onCreate(SQLiteDatabase db) {
this.db = db;
final String SQL_CREATE_QUESTIONS_TABLE = "CREATE TABLE " +
TABLE_NAME + " ( " +
TicketTable.T_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
TicketTable.T_NUMBERT + " TEXT, " +
TicketTable.T_REDATTORE + " TEXT, " +
TicketTable.T_TARGA + " TEXT, " +
TicketTable.T_DATAA + " TEXT, " +
TicketTable.T_MATERIALE + " TEXT, " +
TicketTable.T_DATAC + " TEXT" +
")";
db.execSQL(SQL_CREATE_QUESTIONS_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//TODO rilascio la tabella delle versioni precedenti
db.execSQL("DROP TABLE IF EXISTS TicketInfo" + TABLE_NAME);
onCreate(db);
}
//TODO AGGIUNGERE UN NUOVO TICKET
public void saveNewTicket(Ticket newticket){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(TicketTable.T_NUMBERT,newticket.getTicket());
values.put(TicketTable.T_REDATTORE,newticket.getRedattore());
values.put(TicketTable.T_TARGA,newticket.getTarga());
values.put(TicketTable.T_DATAA,newticket.getDataApertura());
values.put(TicketTable.T_MATERIALE,newticket.getMaterialeGuasto());
values.put(TicketTable.T_DATAC,newticket.getDataChiusura());
//TODO INSERIMENTO DELLE COLONNE
db.insert(TABLE_NAME,null,values);
db.execSQL("DROP TABLE IF EXISTS Ticketinfo" + TABLE_NAME );
db.close();
}
//TODO AGGIORNAMENTO TICKET
public int UpdateTicket(Ticket newticket){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(TicketTable.T_NUMBERT,newticket.getTicket());
values.put(TicketTable.T_REDATTORE,newticket.getRedattore());
values.put(TicketTable.T_TARGA,newticket.getTarga());
values.put(TicketTable.T_DATAA,newticket.getDataApertura());
values.put(TicketTable.T_MATERIALE,newticket.getMaterialeGuasto());
values.put(TicketTable.T_DATAC,newticket.getDataChiusura());
//TODO INSERIMENTO DELLE COLONNE
return db.update(TABLE_NAME,values, TicketTable.T_ID + " = ? " ,new String[]{String.valueOf(newticket.getId())});
}
//TODO ELIMINAZIONE TICKET
public void DeleteTicketRecord(Ticket newticket){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_NAME , TicketTable.T_ID + " = ? " ,new String[]{String.valueOf(newticket.getId())});
db.close();
}
public Cursor getAllRecords(){
db = getReadableDatabase();
return db.rawQuery("SELECT * FROM " + TicketTable.TABLE_NAME,null);
}
public List<Ticket> getAllTicket() {
List<Ticket> TicketList = new ArrayList<>();
//TODO SELEZIONE TUTTA LA QUERY
String selectQuery = "SELECT * FROM " + TicketTable.TABLE_NAME;
db = getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery,null);
//TODO looping attraverso tutte le righe e aggiungendo alla lista
if (cursor.moveToFirst()) {
do{
Ticket newticket = new Ticket();
newticket.setId(cursor.getInt(0));
newticket.setTicket(cursor.getString(1));
newticket.setRedattore(cursor.getString(2));
newticket.setTarga(cursor.getString(3));
newticket.setDataApertura(cursor.getString(4));
newticket.setMaterialeGuasto(cursor.getString(5));
newticket.setDataChiusura(cursor.getString(6));
//TODO AGGIUNGE TICKET INFORMATION ALLA LISTA
TicketList.add(newticket);
}while(cursor.moveToNext());
}
cursor.close();
return TicketList;
}
}
VISUALIZZA(这里必须通过私有 void populaterecyclerView 显示数据库记录(
public class Visualizza extends AppCompatActivity {
private ArrayList<Ticket> adapter;
private List<Ticket> listTicket;
private SqliteHelperDB db;
private TicketAdapter mAdapter;
private RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;
Toolbar mToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recyclerview);
/*//todo modalita FullScreen
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);*/
mToolbar = findViewById(R.id.toolbarLayout);
setSupportActionBar(mToolbar);
BuildRecyclearView();
populaterecyclerView();
}
//TODO Visualizzzare le schede dal DB
private void populaterecyclerView() {
db = SqliteHelperDB.getInstance(this);
listTicket = db.getAllTicket();
if (listTicket != null)
{
adapter = new ArrayList<Ticket>(listTicket);
mRecyclerView.setAdapter(mAdapter);
}
}
//TODO Costruzione della RecyclerView
public void BuildRecyclearView () {
//todo dichiarazione adapter e chiamiamo il suo costruttore passandogli i parametri necessari
mRecyclerView = findViewById(R.id.miorecyclerView);
mRecyclerView.setHasFixedSize(true);
//todo assegnazione LinearLayoutManager alla RecyclearView
mLayoutManager = new LinearLayoutManager(this);
//todo set LinearLayoutManager
mRecyclerView.setLayoutManager(mLayoutManager);
//mRecyclerView.setAdapter(mAdapter);
}
//TODO Procedura ToolBar Menu
@Override
public boolean onCreateOptionsMenu (Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
mAdapter.getFilter().filter(newText);
return false;
}
});
return true;
}
}
将此添加到您的RecyclerView
:
app:layoutManager="android.support.v7.widget.LinearLayoutManager"