簡體   English   中英

如何使用圖像視圖和文本視圖在網格布局上實現單擊偵聽器?

[英]How to implement on click listener on Grid Layout with Image View and Text View?

我想使用網格布局(不是網格視圖),並且在每個單元格中我想要圖像視圖,在它下面是一個文本視圖。 我想在網格布局的每個單元格上實現單擊偵聽器。請有人告訴我該怎么做?

假設您的單元格布局的最頂層包裝器是 RelativeLayout,這里是代碼,可能會起作用:

GridLayout grid = (GridLayout) findViewById(R.id.your_layout_id);
int childCount = grid.getChildCount();

for (int i= 0; i < childCount; i++){
    RelativeLayout container = (RelativeLayout) grid.getChildAt(i);
    container.setOnClickListener(new View.OnClickListener(){
        public void onClick(View view){
            // your click code here
        }
    });
}

我相信最好將 CardView 與網格布局一起使用,在 CardView 中您可以放置​​圖像和文本,並且可以直接設置 onClickListener。 例如

cardApplication.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent(MainActivity.this,ApplicationList.class);
                    startActivity(intent);
                }
            });

其中 cardApplication 是我的CardView在網格布局中的名稱。

這是我CardView的 xml 的樣子:

<android.support.v7.widget.CardView
                        android:layout_width="0dp"
                        android:layout_height="0dp"
                        android:layout_columnWeight="1"
                        android:layout_rowWeight="1"
                        android:layout_marginBottom="16dp"
                        android:layout_marginLeft="16dp"
                        android:layout_marginRight="16dp"
                        app:cardElevation="8dp"
                        app:cardCornerRadius="8dp"
                        android:id="@+id/cardApplication"
                        android:clickable="true"
                        >
                        <LinearLayout
                            android:layout_gravity="center_horizontal|center_vertical"
                            android:layout_margin="16dp"
                            android:orientation="vertical"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content">
    
                            <ImageView
                                android:src="@drawable/ic_apps"
                                android:layout_gravity="center_horizontal"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" />
                            <TextView
                                android:text="Applications"
                                android:textAlignment="center"
                                android:textColor="#000000"
                                android:textStyle="bold"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" />
    
                        </LinearLayout>
gl=(GridLayout) findViewById(R.id.gl);


    int childCount = gl.getChildCount();

    for(int i=0;i<childCount;i++){


       LinearLayout l = (LinearLayout) gl.getChildAt(i);
        l.setOnClickListener(new View.OnClickListener(){
            public void onClick(View view){




                    Intent i=new      Intent(MainActivity.this,SecondActivity.class);
                    startActivity(i);


            }

        });

}

實施Clicklistenerchildview布局。 例如在Imagebutton.setClicklistener(this) ,您可以對布局中的每個單元格做出反應

你也可以從 View() 類擴展你自己的磚類擴展 ImageButton

然后直接在 Object 中構建自己的方法成員變量

希望這有助於帕特里克·沃塔爾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM