无法将android.widget.ImageButton强制转换为android.widget.RelativeLayout
我是Android编程新手,我正在尝试编写一个简单的游戏 问题是我没有走那么远,我遇到了我的第一个问题,我试图在互联网上寻找解决方案,但没有成功 错误消息:无法将android.widget.ImageButton强制转换为android.widget.RelativeLayout,android,Android,我是Android编程新手,我正在尝试编写一个简单的游戏 问题是我没有走那么远,我遇到了我的第一个问题,我试图在互联网上寻找解决方案,但没有成功 错误消息: android.widget.ImageButton无法强制转换为 android.widget.RelativeLayout 错误出现在这一行代码上: Btn = (RelativeLayout) findViewById(R.id.imagebutton1); ImageView btn; btn = (ImageView) roo
android.widget.ImageButton
无法强制转换为
android.widget.RelativeLayout
错误出现在这一行代码上:
Btn = (RelativeLayout) findViewById(R.id.imagebutton1);
ImageView btn;
btn = (ImageView) rootView.findViewById(R.id.your_image_button);
我正在使用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>
查看您的xml文件-
imagebutton1
是ImageButton的id,而不是RelativeLayout,因此请将Btn
的类型更改为ImageButton,并写出以下行:
ImageButton Btn;
....
Btn = (ImageButton) findViewById(R.id.imagebutton1);
代码的其他部分没有问题。问题是:
Btn = (RelativeLayout) findViewById(R.id.imagebutton1);
将其更改为:
Btn = (ImageView) findViewById(R.id.imagebutton1);
您正在尝试将ImageView转换为RelativeLayout
Btn = (RelativeLayout) findViewById(R.id.imagebutton1);
ImageView btn;
btn = (ImageView) rootView.findViewById(R.id.your_image_button);
确保您了解java中基本的casting是如何工作的。您到底想做什么。。。??