【问题标题】:Android tablelayout click listener for cell content用于单元格内容的 Android 表格布局单击侦听器
【发布时间】:2013-09-25 03:26:39
【问题描述】:

我有一个带有自定义线性布局的 3x3 网格视图。但我想要这样的东西 layout 当我在互联网上搜索时,由于列跨度,gridview 不可能。由于 onClickListener 方法,我使用了 gridview:当用户单击其中一个网格单元时,一个新的活动开始(不是同一个活动,所以它就像一个主菜单)。可以在 TableLayout 中做吗?因此,如果我单击一个单元格,即使它跨越,我可以调用 onClick 方法吗?我在网上搜索了一些解决方案,但我发现的所有内容都是单击一个表格行(如果一行中有 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>

【问题讨论】:

  • 您想要为 TableLayout 中的每个视图使用 clickListener 吗??
  • 是的,如果我点击例如第二行第二列的项目,它应该开始一个新的活动。但是如果我点击第三行第三列项目上的例如,它应该开始另一个活动。

标签: java android android-tablelayout


【解决方案1】:

您可以将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);

        }

    }

这应该可以工作

【讨论】:

  • 好的,谢谢,我试一试。如果有效,我将标记为答案:)
猜你喜欢
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-02
  • 2021-01-02
相关资源
最近更新 更多