簡體   English   中英

如何初始化GridLayout的子視圖

[英]How to Initialize child views for GridLayout

如何初始化GridLayout子級並在GridLayout存在的多個ImageView元素上設置onClickListener來進行其他活動

這是我的Java代碼:

public class ResidentialActivity extends Activity {
    GridView grid;
    ImageView img1;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_residential);
        GridLayout grid= (GridLayout) findViewById(R.id.grid);
    }
}

這對我有用。 我將單元格添加到GridLayout並將OnClick偵聽器連接到每個。

如果您已經填充了GridLayout,則可以使用GridLayout.getChildCount()GridLayout.getChildAt(i)來操縱每個單元格以添加OnClick偵聽器。

您首先需要使ResidentialActivity實現View.OnClickListener,如下所示:

public class ResidentialActivity extends AppCompatActivity implements View.OnClickListener {

並重寫OnClick()方法,例如:

@Override
protected void onClick(final View view) {
. . .  launch your other activity in here
}

要連接onClick,您可以遍歷單元格(可以使用GridLayout.getChildCount()):

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.game_layout);
    gridLayout = (GridLayout) findViewById(R.id.gl_puzzle);
    . . . 

    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    for (int i = 0; i < NUM_CELLS; i++) {
        RelativeLayout tmpCell = (RelativeLayout) inflater.inflate(R.layout.picture_cell, gridLayout, false);
        ImageView pic = tmpCell.findViewById(R.id.iv_cell_image);
        pic.setImageBitmap(pieces.get(i));
        tmpCell.setOnClickListener(this);
        gridLayout.addView(tmpCell);
    }

這是我的picture_cell的xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rl_cell"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
   <ImageView
      android:id="@+id/iv_cell_image"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="fill"
      android:background="@android:color/background_dark"
      android:minHeight="20dp"
      android:minWidth="20dp"
      android:padding="1dp" />
</RelativeLayout>

暫無
暫無

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

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