首页 > 解决方案 > onClickListener 不适用于卡片视图上的选项卡式布局

问题描述

大家好,希望你们一切都好。我这里有问题。我有cardview内部选项卡式布局的活动。在选项卡式布局内使用时onclicklistener,它不起作用。但是在没有选项卡式布局的情况下使用它时,它可以工作。我如何在选项卡式布局中使用它。

卡片查看活动:

public class zurhai_ord extends AppCompatActivity {
GridLayout mainGrid;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_zurhai_ord);
    mainGrid = (GridLayout) findViewById(R.id.mainGrid);
    setToggleEvent(mainGrid);

}
private void setToggleEvent(GridLayout mainGrid) {
    for (int i = 0; i < mainGrid.getChildCount(); i++) {
        final CardView cardView = (CardView) mainGrid.getChildAt(i);
        final int finalI = i;
        cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(zurhai_ord.this, "Hello  "+ finalI, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

它可以在没有选项卡式布局的情况下工作

[1]:https://i.stack.imgur.com/Yv3GW.png

使用选项卡式布局它不起作用

在此处输入图像描述

我该如何解决这个问题?

标签: androidandroid-studioandroid-layoutandroid-tabbed-activity

解决方案


请使用 gridview 项目单击侦听器,如下所示:

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
            switch (position) {
                case 0: break; }

        }
    });

在这里,您将获得每张卡片的位置。


推荐阅读