Android ExpandableListActivity の問題
-
14-09-2019 - |
質問
ExpandableList をカスタマイズしたいと考えています。私の問題は、単一のアクティビティにボタンと展開可能なリストが必要であることです。それを達成できるでしょうか?すべての例を見ましたが、すべて ExpandableListActivity を拡張しており、すべてのウィジェットを 1 つのアクティビティに配置できるアクティビティではありません。助けていただければ幸いです。
解決
による ドキュメンテーション この作業はそれほど難しくないはずです。
最初に行う必要があるのは、カスタム レイアウトを保持するための新しい XML ファイルを作成することです。ファイルは res/layout フォルダーに保存され、「my_custom_expandable_list_view_layout.xml」のような名前が付けられ、次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ExpandableListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<Button android:id="@id/my_button_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Click Me"/>
</LinearLayout>
そのレイアウト ファイルのインポート部分では、「ExpandableListView」を組み込み、それに「android"list」の ID を与えます。
次に行う必要があるのは、呼び出してカスタム レイアウトを使用していることをアクティビティに知らせることです。 setContentView() アクティビティの onCreate() で。呼び出しは次のようになります。
setContentView(R.layout.my_custom_expandable_list_view_layout);
この時点で、プログラムを実行すると、画面の下部に大きなボタンが表示されるはずです。このボタンで何かを行うには、次の呼び出しを介してボタンにアクセスする必要があります。 findViewById() このようなアクティビティ内で
Button myButton = (Button)findViewById(R.id.my_button_id);
myButton オブジェクトを取得したら、クリック リスナーやその他のやりたいことを追加できます。レイアウト ファイルに新しいものを追加するだけで、必要なものをほとんど追加できます。