Android可点击图层

时间:2011-10-18 13:57:05

标签: android button layer clickable

我已将linearlayer设置为可点击,并希望它像按钮一样运行并启动新活动。但是我得到了错误。这是.xml

的一部分
            <LinearLayout
            android:id="@+id/llproduct1"
            android:layout_width="fill_parent" android:layout_height="wrap_content" 
            android:orientation="vertical" android:clickable="true">
            <ImageView .... />
            <TextView .... />
            </LinearLayout>

这是.java     按钮bProduct1 =(按钮)findViewById(R.id.llproduct1);         bProduct1.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent("com.testing.PRODUCTDESCRIPTION"));
        }

出了什么问题?

2 个答案:

答案 0 :(得分:0)

Button bProduct1 = (Button) findViewById(R.id.llproduct1); 

您无法将LinearLayout转换为按钮。但你可以这样做:

 LinearLayout bProduct1 = (LinearLayout) findViewById(R.id.llproduct1); 
 bProduct1.setOnClickListener(...)

see this for reference

答案 1 :(得分:0)

“bProduct1 =(Button)findViewById(R.id.llproduct1);”

是错误的类投射

'llproduct1'是LinearLayout !!不是按钮。
因此java代码会导致ClassCastException。

onClick方法在View类中声明 LinearLayout和Button都继承了View类。

那你为什么不修改下面的代码。

View bProduct1 = findViewById(R.id.llproduct1);
bProduct1.setOnClickListener(......);