Итерации по всем узлам, для каждого узла получить значение узла и добавить текущий узел к узлу со значением.
for (int i = 0; i < N; i++) {
nodes[nodes[i].getValue()].addChild(nodes[i])
}
Я прочитал твой код. Я думаю, что проблема в методе обновления. попробуйте этот код:
public class SQLitehelper extends SQLiteOpenHelper {
private static String DATABASE_NAME = "Demochat.db";
String TABLE_NAME = "chatdata";
String COL_1 = "ID";
String COL_2 = "TYPE";
String COL_3 = "DATE";
String COL_4 = "TIME";
String COL_5 = "MSG";
public SQLitehelper(MainActivity context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT,TYPE TEXT,DATE TEXT,TIME TEXT,MSG TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean insertData(String type, String date, String time, String msg){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put(COL_2,type);
contentValues.put(COL_3,date);
contentValues.put(COL_4,time);
contentValues.put(COL_5,msg);
long results=db.insert(TABLE_NAME,null,contentValues);
if(results==-1){
return false;
}
else {
return true;
}
}
public Cursor gtealldata(){
SQLiteDatabase db=this.getWritableDatabase();
Cursor res=db.rawQuery("select * from "+TABLE_NAME,null);
return res;
}
}
Просто взглянув на создание вашей базы данных, я обнаружил несколько ошибок (в основном пропущенных пробелов). Это должно быть:
@Override
public void onCreate(SQLiteDatabase db) {
final String CREATE_TABLE =
"CREATE TABLE " + TABLE_NAME + " ("
+ COLUMN_ID + " INTEGER PRIMARY KEY, "
+ COLUMN_NAME + " TEXT);";
db.execSQL(CREATE_TABLE);
}
Я бы посоветовал вам взглянуть на официальную документацию по созданию базы данных SQLite: хранилище данных SQLite .
Обычно лучше идти шаг за шагом: сначала убедитесь, что ваша база данных создана правильно, прежде чем вы начнете добавлять ее. Вы можете использовать простые, но полезные инструменты, такие как Stetho , чтобы проверить вашу базу данных.
Кроме того, вы можете отфильтровать ваш logcat, выбрав «Показать только выбранное приложение». Скриншот