如何管理项目的可点击?

时间:2016-01-31 19:44:53

标签: android

伙计我以编程方式生成了一张卡片,并且还有四张imageview,但是当我点击它们时我无法控制。因为我使用了lparams,我无法使用 setOnClickListener()。我的意思是,我我只想在点击它,卡片或任何组件时做点什么。我怎么能这样做?

<ImageView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:id="@+id/imageView"
     android:layout_alignParentTop="true"
     android:layout_alignParentLeft="true"
     android:layout_alignParentStart="true"
     android:layout_toLeftOf="@+id/imageButton"
     android:layout_toStartOf="@+id/imageButton"
     android:layout_above="@+id/imageButton" />

这里卡

final RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(MATCH_PARENT,MATCH_PARENT);
final CardView cardView = new CardView(this);
cardView.setLayoutParams(lparams);
imagView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            relativeLayout.addView(cardView);
        }
    });

这是添加卡片,但我想点击该卡片并做一些事情,比如用烤面包片等给出消息。

2 个答案:

答案 0 :(得分:0)

首先。为卡片设置 id (以识别该卡片):

cardView.setId(777);

二。设置点击聆听:

cardView.setOnClickListener(this);

最后:

public void onClick(View v){
   if(v.getId() == 777){
        //Ta daaaaaam
   }
}

答案 1 :(得分:0)

你做得很好。但是你错过了一刻。您没有将clickListener()设置为cardView。那么你需要做什么:

final RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(MATCH_PARENT,MATCH_PARENT);
final CardView cardView = new CardView(this);
cardView.setLayoutParams(lparams);
cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Show toast or something...
        }
    }
);
imagView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            relativeLayout.addView(cardView);
        }
    }
);