我是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>
答案 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)
Btn =(ImageButton)findViewById(R.id.imagebutton1);
答案 3 :(得分:0)
使用:强>
ImageView btn;
btn = (ImageView) rootView.findViewById(R.id.your_image_button);
确保您了解java中基本的转换是如何工作的。