android.widget.ImageButton无法强制转换为android.widget.RelativeLayout

时间:2015-05-25 13:05:09

标签: android

我是Android编程的新手,我正在尝试编写一个简单的游戏。

问题是我来的并不是那么远,我遇到了第一个问题,我试图在互联网上搜索解决方案,但没有成功。

错误讯息:

  无法投射

android.widget.ImageButton   android.widget.RelativeLayout

此行代码中出现错误:

Btn = (RelativeLayout) findViewById(R.id.imagebutton1);

我使用Eclipse并尝试清理项目,但也没有成功。

Java文件:

package com.example.tapthevac;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.RelativeLayout;

public class MainActivity extends AppCompatActivity {

RelativeLayout Btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Btn = (RelativeLayout) findViewById(R.id.imagebutton1);

    Btn.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            return false;
        }

    });

    Btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

        }

    });

}

}

XML文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/re/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/space"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.tapthevac.MainActivity" >

<ImageButton
    android:id="@+id/imagebutton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:src="@drawable/start" />

</RelativeLayout>

4 个答案:

答案 0 :(得分:0)

看看你的xml文件 - imagebutton1是不是RelativeLayout的ImageButton的id,所以将Btn的类型更改为ImageButton并写下以下行:

ImageButton Btn;
....
Btn = (ImageButton) findViewById(R.id.imagebutton1);

代码的其他部分没问题。

答案 1 :(得分:0)

问题在于:

o

将其更改为:

Btn = (RelativeLayout) findViewById(R.id.imagebutton1);

您正在尝试将ImageView转换为RelativeLayout

答案 2 :(得分:0)

  • 您应该投射为ImageButton,因为您的视图是ImageView按钮

Btn =(ImageButton)findViewById(R.id.imagebutton1);

答案 3 :(得分:0)

使用:

ImageView btn;

btn = (ImageView) rootView.findViewById(R.id.your_image_button);

确保您了解java中基本的转换是如何工作的。