我正在学习从在线制作测验应用程序,现在一切顺利。我想知道不是从资产中读取json,而是从在线读取内容是明智的,这样可以添加或更改问题,而用户不必更新应用程序。
这是JSON结构。
for l1 in geojson['geometry_coordinates']:
for l2 in l1:
for l3 in l2:
lon.append(l3[0])
lat.append(l3[1])
,要从资产读取的代码是
{"questions" : [{"category":"general","question": "Grand Central Terminal, Park Avenue, New York is the world's", "choices": ["largest railway station","highest railway station","longest railway station","None of the above"], "correctAnswer":0},
{"category":"science","question": "Entomology is the science that studies", "choices": ["Behavior of human beings","Insects","The origin and history of technical and scientific terms","the formation of rocks"], "correctAnswer":1},
{"category":"science", "question":"What is known as the 'master gland' of the human body?", "choices":["Thyroid gland","Pituitary gland","Pineal gland","Pancreas"],"correctAnswer":1}
]}
我想在加载下一个问题时显示进度加载对话框,在此感谢您的帮助。提前致谢。
答案 0 :(得分:3)
最佳选择将使用REST APIs,从服务器/数据库获取数据,可以随时随地对其进行编辑
您可以学习使用Node js,它并不难,它基于JavaScript。
要从API获取JSON,可以使用Retrofit
如果您是初学者,学习和实施这些东西会有些困难,但是从长远来看,这将是最佳选择
希望有帮助!
答案 1 :(得分:1)
也许可以考虑使用两个不同的线程(或Runnables),一个线程用于下载JSON内容,另一个线程用于显示GUI。例如,看一下:Stackoverflow Post
该解决方案涉及制作Runnable,该Runnable首先将开始从在线网站下载数据,然后在下载时将当前进度更新到GUI线程上。他使用BufferedInputStream类,因此可以使用while循环读取数据,更新下载的字节数,获取当前进度,然后显示结果。我想您可以通过使用while循环在此处执行类似的操作,然后检查下载是否完成。如果是这样,您可以关闭显示器。