Android кликабельный слой - PullRequest
       23

Android кликабельный слой

0 голосов
/ 18 октября 2011

Я установил линейный слой, чтобы он стал активным, и я хочу, чтобы он действовал как кнопка и начинал новое действие.Однако я получил ошибку.Вот часть .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 = (Button) 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 голосов
/ 18 октября 2011

Неправильное приведение классов в "bProduct1 = (Button) findViewById (R.id.llproduct1);"

'llproduct1' - это LinearLayout !! не кнопка.
поэтому код Java вызывает ClassCastException.

Метод onClick объявлен в классе View.
и оба из LinearLayout и Button наследуют класс View.

так почему бы вам не исправить приведенный ниже код.

View bProduct1 = findViewById(R.id.llproduct1);
bProduct1.setOnClickListener(......);
0 голосов
/ 18 октября 2011
Button bProduct1 = (Button) findViewById(R.id.llproduct1); 

вы не можете наложить вашу LinearLayout на кнопку.Но вы можете сделать:

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

см. Это для справки

...