2012-03-08 34 views
0

SharedPreferencesからIDを取得してからリモートデータベースを呼び出す画面が表示され、そのデータを画面に表示する必要があります。Androidが画面に表示されている画面に項目を表示しています

ViewTextでこれを行うことは可能ですか、またはリモートdb呼び出し後にテキストを画面に配置する別の方法はありますか?

これを行うにはどのような方法があり、どのように達成するのですか?

ありがとうございます! 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); 

答えて

0

は、あなたの活動に

myTextView

という名前のTextViewをXMLで画面を構築し、持つことです。データがロードされたら、onLoadFinishedを使用してTextViewをレイアウトに追加するか、既存のレイアウトのテキストを置き換えます。 xmlのレイアウトにTextViewを作成して、希望どおりに配置し、myTextView.setText(databasetext)を使用してデータベース呼び出しの後のテキストを置き換えることができます。

+0

通常の方法でこれを行うと、UIスレッドが完全にブロックされます。 Tyler Treatの対応は、AsyncTaskで非同期に実行することでこの問題を解決します。仕様[ここ](http://developer.android.com/reference/android/os/AsyncTask)を見てください。html)これはまさにそれが意味するものなのですから。 –

+0

私は、これがメインスレッドで実行されるのか、非同期タスクで行われるのか、どこで行われるのかについては何も仮定しませんでした。私の答えは、テキストフィールドを更新するという問題に取り組んだだけです。 –

2

使用あなたのデシベルコールのためのローダーを宣言するロジックは、私が使用するであろうと

2

データを表示する方法データベースは、そのデータを取得する方法とは完全に独立しています。表示する必要があるテキストの場合は、TextViewは論理ビュー要素のように見えます。簡単に言えば

、あなたが服用しなければならない手順は、おそらく次のようになります。

  1. IDとSharedPreferences
  2. 照会データベースからIDを取得した結果
  3. のためのあなたのビュー層
  4. に結果を渡します結果を表示するにはTextViewを使用してください。

最高です)を使用して、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()); 
    } 
} 
1

カスタムアラートダイアログを試しましたか?this link

これにより、アクティビティを変更せずに画面にテキストビューを表示することができます。

は、私はあなたが

を尋ねるので、これを正しく答えを願って「それはViewTextまたはリモートデシベルの呼び出しが行われた後、画面上の 場所のテキストに別の方法があることを行うことは可能ですか?」。

次に、アクティビティライフサイクルでonResume()を使用して画面をリフレッシュするオプションがあります。

関連する問題