0

不明な数の単純な正方形のImageButton(アイコンなど)のマトリックスと[キャンセル]ボタンを含むダイアログを作成する必要があります。ダイアログは、プログラムでインフレータブルでスクロール可能である必要があります。

私は本当に混乱しています:カスタムレイアウトを作成してAlertDialogに適用する必要がありますか?そして、どうすればクリックを傍受できますか?PopUpWiewを使用する必要がありますか?アクティビティとして作成する必要がありますか?

また、新しいアクティビティを作成する場合... Runnableを使用する必要がありますか?完全な情報源を提供しないでください。このニーズに対応するための正しい方向を理解する必要があります。

前もって感謝します。

4

1 に答える 1

0

ダイアログを使用して、レイアウトファイルをそれに設定できます。ダイアログは、実際のアクティビティに呼び出して自由に閉じることができるミニアクティビティのようなものです。

これをカスタムレイアウトファイルとします--customLayout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
tools:context=".AutoMode" >

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_above="@+id/relativeLayout2"
    android:layout_centerHorizontal="true" >

    <Button
        android:id="@+id/button1"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/blue_gradient"
        android:layout_alignRight="@+id/relativeLayout1"
        android:layout_alignTop="@+id/relativeLayout1"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/black_gradient"
        android:layout_alignTop="@+id/relativeLayout1"
        android:layout_toRightOf="@+id/button1"/>

    <Button
        android:id="@+id/button3"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:layout_toRightOf="@+id/button2"
        android:background="@drawable/red_gradient" />

</RelativeLayout>

 <RelativeLayout
    android:id="@+id/relativeLayout2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" >

    <Button
        android:id="@+id/button4"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/yellow_gradient"
        android:layout_alignRight="@+id/relativeLayout2"
        android:layout_alignTop="@+id/relativeLayout2" />

    <Button
        android:id="@+id/button5"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/metallic_gradient"
        android:layout_alignTop="@+id/relativeLayout2"
        android:layout_toRightOf="@+id/button4" />

    <Button
        android:id="@+id/button6"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/purple_gradient"
        android:layout_alignTop="@+id/relativeLayout2"
        android:layout_toRightOf="@+id/button5"/>

</RelativeLayout>

 <RelativeLayout
    android:id="@+id/relativeLayout3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_below="@+id/relativeLayout2"
    android:layout_centerHorizontal="true" >

    <Button
        android:id="@+id/button7"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/green_gradient"
        android:layout_alignRight="@+id/relativeLayout3"
        android:layout_alignTop="@+id/relativeLayout3" />

    <Button
        android:id="@+id/button8"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/orange_gradient"
        android:layout_alignTop="@+id/relativeLayout3"
        android:layout_toRightOf="@+id/button7" />

    <Button
        android:id="@+id/button9"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/violet_gradient"
        android:layout_alignTop="@+id/relativeLayout3"
        android:layout_toRightOf="@+id/button8" />

</RelativeLayout>

このレイアウトを、呼び出したいアクティビティのダイアログボックスに設定する方法は次のとおりです。

final Dialog customDialog = new Dialog(this);
    customDialog.setTitle("Matrix");
    disclaimer.setContentView(R.layout.customLayout);
      Button b1 = (Button) customDialog.findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            //Do whatever you want when button1 is clicked
        }
    });
.
.//same for other buttons
.
Button b9 = (Button) customDialog.findViewById(R.id.button9)
b9.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            //Do whatever you want when button9 is clicked
        }
    });
    Button close = (Button) customDialog.findViewById(R.id.dismiss);
    customDialog.show();
    close.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            disclaimer.dismiss();
        }
    });
于 2013-01-12T18:03:18.107 に答える