SherlockListActivity を拡張する MainActivity があります。onCreate メソッドは次のとおりです。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new MyXMLDownloader().execute(this);
}
MyXMLDownloader は単なる AsyncTask クラスであり、http から XML ファイルをダウンロードするために使用します。onPostExecute メソッドで、その XML ファイルに基づいて GUI を作成する makeMainGUI() を呼び出しています (つまり、ListView を埋めます)。
main.xml は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ListView
android:id="@+android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
ProgressBar ウィジェット (およびいくつかのテキスト) を追加したいと思います。XML をダウンロードする前に表示され、ListView がいっぱいになると消えます (もちろん、XML のダウンロード後に表示されます)。どうすればそれを達成できますか?
MainActivity クラスが SherlockListActivity を拡張するため、main.xml に ListView が必要なので、これに問題があります。
編集:
私はこのようなことをすることができました:
<ProgressBar
android:id="@android:id/empty"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
「空の」IDでProgressBarをmain.xmlに追加しました。ListView が空である限り表示されますが、これは正しいことです。しかし、「空の」IDを持つことができるアイテムは1つだけなので、ここにもTextViewを配置する方法がわかりません。
EDIT2:私はこれを行うことができたと思います。main.xml に以下を追加しました。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:id="@android:id/empty">
<ProgressBar
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:id="@+id/progressBar1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Please wait"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/waitingTextView"/>
</LinearLayout>
そして、それは私が必要としていたものです。ありがとうございました!