我有以下方法:
public void ImportXMLFileIntoDatabase<T, U>(string xmlFileLocation, string xmlFileName, string databaseFolderPath, string objectsToImport)
where U : IPlural<T> where T : new()
{
string xmlFileFullPath = xmlFileLocation + "/" + xmlFileName;
XmlSerializer deserializer = new XmlSerializer(typeof(U));
TextReader textReader = new StreamReader(xmlFileFullPath);
U u = (U)deserializer.Deserialize(textReader);
textReader.Close();
//Import into database
var connection = new SQLiteConnection(System.IO.Path.Combine(databaseFolderPath, "MobileSell.db")))
connection.DeleteAll<T>();
List<T> all = u.All;
connection.InsertAll(all);
int numElementsImported = connection.Table<T>().ToList().Count;
Toast.MakeText(this, "Imported " + numElementsImported + " " + objectsToImport, ToastLength.Short).Show();
}
该方法将XML
文件反序列化为C#
个对象,并将该对象插入数据库(在此之前,它会删除数据库中的所有记录)。
我称这种方法为6次:
ImportXMLFileIntoDatabase<Article, Articles>(pathFromserverFolder, "articles.xml", apkFolder, "артикули");
ImportXMLFileIntoDatabase<Customer, Customers>(pathFromserverFolder, "customers.xml", apkFolder, "клиенти");
ImportXMLFileIntoDatabase<Sertif, Sertifs>(pathFromserverFolder, "sertif.xml", apkFolder, "сертификати");
ImportXMLFileIntoDatabase<CustDiscount, CustDiscounts>(pathFromserverFolder, "custdisc.xml", apkFolder, "отстъпки");
ImportXMLFileIntoDatabase<Group, Groups>(pathFromserverFolder, "groups.xml", apkFolder, "групи");
ImportXMLFileIntoDatabase<Route, Routes>(pathFromserverFolder, "routes.xml", apkFolder, "маршрути");
但我只收到最后3个电话的Toast
消息,它们出现并消失得太快。我怎么能出现前3个吐司呢?在我看来,在所有表的所有插入都出现之后,所有3个Toasts消息都会出现。我希望Toast在每次插入后出现并保持在屏幕上ToastLenght.Short time
。