0

カスタム線形レイアウトを含む 3x3 グリッドビューがあります。しかし、私はこのレイアウトのようなものが欲しい のですが、インターネットで検索すると、列スパンのために gridview では不可能です。onClickListener メソッドのために gridview を使用しました。ユーザーがグリッド セルの 1 つをクリックすると、新しいアクティビティが開始されます (同じアクティビティではないため、メイン メニューのようなものです)。TableLayoutで行うことは可能ですか? セルがまたがっていてもセルをクリックすると、onClick メソッドを呼び出すことができますか? 私はいくつかの解決策を求めて Web を検索しましたが、見つけたものはすべて表の行をクリックすることです (1 行に 3 つのカスタム レイアウトがある場合、これは私には適していません)。

TableLayout の私のレイアウト:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/background_light"
android:orientation="vertical" >

<ImageView
    android:id="@+id/headerPicture"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:contentDescription="@string/imageString"
    android:src="@drawable/bicaj" />

<TableLayout
    android:id="@+id/mainGrid"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:numColumns="3" >

    <TableRow
        android:id="@+id/mainFirstRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dip" >

        <LinearLayout
            android:id="@+id/mainOnline"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
            <ImageView
                android:id="@+id/mainIconOnline"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:contentDescription="@string/main_page_icon_descp" />

            <TextView
                android:id="@+id/mainTextOnline"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp" />
        </LinearLayout>
    </TableRow>
.
.
.
.
    </TableLayout>
</LinearLayout>
4

1 に答える 1

3

に追加できclickListenersますImageView

.....
    <LinearLayout
                android:id="@+id/mainOnline"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
                <ImageView
                    android:id="@+id/mainIconOnline"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:contentDescription="@string/main_page_icon_descp" />
......

そしてあなたの活動で

ImageView butt1 = (ImageView) findViewById(R.id.mainIconOnline);

        butt1.setOnClickListener(this);

@Override
    public void onClick(View v) {
        if (v.getId() == R.id.mainIconOnline) {

            Intent i = new Intent(this, SecondActivityclass);
        startActivity(i);

        }

    }

これはうまくいくはずです

于 2013-09-24T17:23:36.660 に答える