按下图像按钮
时,我使用此代码启动活动 import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OnClickListener listnr=new OnClickListener() {
@Override
public void onClick(View v) {
Intent i= new Intent(MainActivity.this, FlashActivity.class);
startActivity(i);
}
};
Button imageButton1 =(Button) findViewById(R.id.imageButton1);
imageButton1.setOnClickListener(listnr);
}
}
崩溃任何人都可以告诉我此代码中的错误
错误 12-04 14:30:02.506:E / AndroidRuntime(31514):致命异常:主要 12-04 14:30:02.506:E / AndroidRuntime(31514):java.lang.RuntimeException:无法启动活动ComponentInfo {com.app.flash / com.app.flash.MainActivity}:java.lang.ClassCastException:android .widget.ImageButton无法强制转换为android.widget.Button 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2185) 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210) 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.app.ActivityThread.access $ 600(ActivityThread.java:142) 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1208) 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.os.Handler.dispatchMessage(Handler.java:99) 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.os.Looper.loop(Looper.java:137) 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.app.ActivityThread.main(ActivityThread.java:4931) 12-04 14:30:02.506:E / AndroidRuntime(31514):at java.lang.reflect.Method.invokeNative(Native Method) 12-04 14:30:02.506:E / AndroidRuntime(31514):at java.lang.reflect.Method.invoke(Method.java:511) 12-04 14:30:02.506:E / AndroidRuntime(31514):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:791) 12-04 14:30:02.506:E / AndroidRuntime(31514):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 12-04 14:30:02.506:E / AndroidRuntime(31514):at dalvik.system.NativeStart.main(Native Method) 12-04 14:30:02.506:E / AndroidRuntime(31514):引起:java.lang.ClassCastException:android.widget.ImageButton无法强制转换为android.widget.Button 12-04 14:30:02.506:E / AndroidRuntime(31514):at com.app.flash.MainActivity.onCreate(MainActivity.java:17) 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.app.Activity.performCreate(Activity.java:5008) 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 12-04 14:30:02.506:E / AndroidRuntime(31514):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2139) 12-04 14:30:02.506:E / AndroidRuntime(31514):... 11 more
答案 0 :(得分:7)
使用它可以解决您的问题
Intent i= new Intent(CurrentActivity.this, UpcomingActivity.class);
startActivity(i);
不要忘记在清单文件中定义您的类。
对于Ex:
Button imageButton1 =(Button) findViewById(R.id.imageButton1);
imageButton1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i= new Intent(CurrentActivity.this, UpcomingActivity.class);
startActivity(i);
}
});
确保在xml文件中包含按钮而不是imageButton。如果xml文件中的图像按钮,则需要如下所述:
ImageButton imageButton1 =(ImageButton) findViewById(R.id.imageButton1);
答案 1 :(得分:1)
启动按钮上的活动点击:
OnClickListener listnr=new OnClickListener() {
@Override
public void onClick(View v) {
Intent i= new Intent(v.getContext(),FlashActivity.class);
startActivity(i);
}
};
并确保您已在FlashActivity
AndroidManifest.xml
活动
答案 2 :(得分:1)
OnClickListener=new OnClickListener()
{
@Override
public void onClick(View v) {
Intent i= new Intent(context,classname);
startActivity(i);
}
};
Button imageButton1 =(Button) findViewById(R.id.imageButton1);
imageButton1.setOnClickListener(listnr);
答案 3 :(得分:0)
在您的活动中定义此变量 公共上下文上下文;
并在你的侦听器写入之前创建: 上下文=此
并使用context.startActivity(i)
更改startactivity(i)希望有所帮助
答案 4 :(得分:0)
尝试他的方式:
OnClickListener listnr=new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent("currentActivity.this, FlashActivity.class"));
}
};
Button imageButton1 =(Button) findViewById(R.id.imageButton1);
imageButton1.setOnClickListener(listnr);