我遇到的问题是有一个屏幕从SharedPreferences获取一个id,然后我调用一个远程数据库,然后我必须在屏幕上显示这些数据。
是否可以使用ViewText执行此操作,或者在进行远程数据库调用后是否有另一种方法在屏幕上放置文本?
最好的方法是什么,我该如何完成?
谢谢!
答案 0 :(得分:2)
使用加载程序进行数据库调用。加载数据后,使用onLoadFinished将TextView添加到布局或替换现有布局中的文本。 我的建议是在你的布局中用xml创建一个TextView,这样你就可以完全按照自己的意愿定位它,然后用myTextView.setText(databasetext)替换数据库调用后的文本
答案 1 :(得分:2)
从数据库显示数据的方式完全独立于获取数据的方式。如果它只是需要显示的文本,则TextView
似乎是要使用的逻辑视图元素。
简单来说,您应采取的步骤可能是:
SharedPreferences
TextView
显示结果最好(并且从4.0开始需要)在与UI线程分开的线程中进行网络调用。最好的方法可能是使用AsyncTask
。例如:
private class GetDbItemTask extends AsyncTask<Integer, Void, MyDbItem> {
protected MyDbItem doInBackground(Integer... ids) {
return mDbService.load(ids[0]);
}
protected void onPostExecute(MyDbItem result) {
mTextView.setText(result.toString());
}
}
答案 2 :(得分:1)
您是否尝试过自定义提醒对话框this link?
这使您可以在屏幕上显示文本视图,而无需更改活动。
我希望自从你提出
以来我正确回答了这个问题&#34;是否可以使用ViewText执行此操作,或者是否有另一种方法 在进行远程数据库调用之后在屏幕上放置文本?&#34;。
然后可以选择在活动生命周期中使用onResume()刷新屏幕。
答案 3 :(得分:0)
我将使用的逻辑是用XML构建屏幕并使用名为myTextView的Textview
您的活动中的声明了一个Textview
TextView name_field;
String name;
....
.
.
.
//call my database info
//this example get a variable and pass it into String variable name and then display it in your text view
name_field = (TextView) findViewById(R.id.myTextView);
name_field.setText(name);