Android-单击图像按钮时崩溃
当我单击我的imagebutton时,我的应用程序崩溃。 它发生在模拟器上,也发生在真实的手机上。我在这里和其他论坛用一些线程检查了我的代码,但我没有发现错误。我很高兴有任何解决办法 主课Android-单击图像按钮时崩溃,android,crash,click,imagebutton,android-imagebutton,Android,Crash,Click,Imagebutton,Android Imagebutton,当我单击我的imagebutton时,我的应用程序崩溃。 它发生在模拟器上,也发生在真实的手机上。我在这里和其他论坛用一些线程检查了我的代码,但我没有发现错误。我很高兴有任何解决办法 主课 public class MainActivity extends Activity { public static final String PREFS_NAME = "MyPrefsFile"; @Override protected void onCreate(Bundle
public class MainActivity extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addListenerOnButton1();
addListenerOnButton2();
addListenerOnButton3();
addListenerOnButton4();
addListenerOnButton5();
addListenerOnButton6();
addListenerOnButton7();
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean dialogShown = settings.getBoolean("dialogShown", false);
if (!dialogShown) {
// AlertDialog code here
new AlertDialog.Builder(this).setTitle(R.string.alter_title).setMessage(R.string.alter_content).setNeutralButton(R.string.alter_button, null).show();
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("dialogShown", true);
editor.commit();
}
}
public void addListenerOnButton1() {
ImageButton imgbutton1 = (ImageButton) findViewById(R.id.imageButton1);
imgbutton1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://www.arcig.cz/bakalari/suplov.htm";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton2() {
ImageButton imgbutton2 = (ImageButton) findViewById(R.id.imageButton2);
imgbutton2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://www.arcig.cz/bakalari/rozvrh.htm";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton3() {
ImageButton imgbutton3 = (ImageButton) findViewById(R.id.imageButton3);
imgbutton3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://www.arcig.cz/bakaweb/login.aspx";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton4() {
ImageButton imgbutton4 = (ImageButton) findViewById(R.id.imageButton4);
imgbutton4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "https://www.arcig.cz/roundcube/";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton5() {
ImageButton imgbutton5 = (ImageButton) findViewById(R.id.imageButton5);
imgbutton5.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://www.arcig.cz/modules.php?op=modload&name=Web_Links&file=index&req=visit&lid=58";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton6() {
ImageButton imgbutton6 = (ImageButton) findViewById(R.id.imageButton6);
imgbutton6.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://strav.nasejidelna.cz/0082/faces/login.jsp";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton7() {
ImageButton imgButton7 = (ImageButton) findViewById(R.id.imageButton7);
imgButton7.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent myIntent = new Intent(MainActivity.this, HelpActivity.class);
MainActivity.this.startActivity(myIntent);
}
});
}
}
public class HelpActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_help);
addListenerOnButtonHelp();
}
public void addListenerOnButtonHelp() {
Button buttonhelp = (Button) findViewById(R.id.buttonback);
buttonhelp.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent myIntent = new Intent(HelpActivity.this, MainActivity.class);
HelpActivity.this.startActivity(myIntent);
}
});
}
}
HelpActivity.class
public class MainActivity extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addListenerOnButton1();
addListenerOnButton2();
addListenerOnButton3();
addListenerOnButton4();
addListenerOnButton5();
addListenerOnButton6();
addListenerOnButton7();
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean dialogShown = settings.getBoolean("dialogShown", false);
if (!dialogShown) {
// AlertDialog code here
new AlertDialog.Builder(this).setTitle(R.string.alter_title).setMessage(R.string.alter_content).setNeutralButton(R.string.alter_button, null).show();
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("dialogShown", true);
editor.commit();
}
}
public void addListenerOnButton1() {
ImageButton imgbutton1 = (ImageButton) findViewById(R.id.imageButton1);
imgbutton1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://www.arcig.cz/bakalari/suplov.htm";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton2() {
ImageButton imgbutton2 = (ImageButton) findViewById(R.id.imageButton2);
imgbutton2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://www.arcig.cz/bakalari/rozvrh.htm";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton3() {
ImageButton imgbutton3 = (ImageButton) findViewById(R.id.imageButton3);
imgbutton3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://www.arcig.cz/bakaweb/login.aspx";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton4() {
ImageButton imgbutton4 = (ImageButton) findViewById(R.id.imageButton4);
imgbutton4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "https://www.arcig.cz/roundcube/";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton5() {
ImageButton imgbutton5 = (ImageButton) findViewById(R.id.imageButton5);
imgbutton5.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://www.arcig.cz/modules.php?op=modload&name=Web_Links&file=index&req=visit&lid=58";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton6() {
ImageButton imgbutton6 = (ImageButton) findViewById(R.id.imageButton6);
imgbutton6.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String url = "http://strav.nasejidelna.cz/0082/faces/login.jsp";
Intent myIntent = new Intent(MainActivity.this, WebviewActivity.class);
myIntent.putExtra("url", url);
startActivity(myIntent);
}
});
}
public void addListenerOnButton7() {
ImageButton imgButton7 = (ImageButton) findViewById(R.id.imageButton7);
imgButton7.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent myIntent = new Intent(MainActivity.this, HelpActivity.class);
MainActivity.this.startActivity(myIntent);
}
});
}
}
public class HelpActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_help);
addListenerOnButtonHelp();
}
public void addListenerOnButtonHelp() {
Button buttonhelp = (Button) findViewById(R.id.buttonback);
buttonhelp.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent myIntent = new Intent(HelpActivity.this, MainActivity.class);
HelpActivity.this.startActivity(myIntent);
}
});
}
}
LogCat日志
09-08 21:05:48.173: E/AndroidRuntime(9781): FATAL EXCEPTION: main
09-08 21:05:48.173: E/AndroidRuntime(9781): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tona.arcig/com.tona.arcig.HelpActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.app.ActivityThread.access$600(ActivityThread.java:156)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.os.Handler.dispatchMessage(Handler.java:99)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.os.Looper.loop(Looper.java:153)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.app.ActivityThread.main(ActivityThread.java:5297)
09-08 21:05:48.173: E/AndroidRuntime(9781): at java.lang.reflect.Method.invokeNative(Native Method)
09-08 21:05:48.173: E/AndroidRuntime(9781): at java.lang.reflect.Method.invoke(Method.java:511)
09-08 21:05:48.173: E/AndroidRuntime(9781): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
09-08 21:05:48.173: E/AndroidRuntime(9781): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
09-08 21:05:48.173: E/AndroidRuntime(9781): at dalvik.system.NativeStart.main(Native Method)
09-08 21:05:48.173: E/AndroidRuntime(9781): Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:110)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:99)
09-08 21:05:48.173: E/AndroidRuntime(9781): at com.tona.arcig.HelpActivity.onCreate(HelpActivity.java:14)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.app.Activity.performCreate(Activity.java:5262)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
09-08 21:05:48.173: E/AndroidRuntime(9781): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
09-08 21:05:48.173: E/AndroidRuntime(9781): ... 11 more
09-08 21:05:48.951: D/dalvikvm(9781): threadid=11: interp stack at 0x5ebab000
请帮忙。对不起,我的英语很差,来自捷克共和国。谢谢你,LogCat显示了一个非法状态例外。这里有一个类似的问题:
根据LogCat消息,您似乎需要更改主题XML文件中的主题以匹配所需主题。线索在您的LogCat输出中: 原因:java.lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或子代)。 因此,对于从ActionBarActivity派生的HelpActivity,您需要使用Theme.AppCompat 阅读这里-。 打开Android清单,查找帮助活动,添加
android:theme=“@android:style/theme.AppCompat”代表深色主题,或“theme.AppCompat.Light”代表浅色主题。Logcat说`你需要在这个活动中使用一个theme.AppCompat主题(或子代)。`在你的清单中为
HelpActivity
useandroid:theme发布你的应用程序清单=“@android:style/Theme.AppCompat”
这将解决您的问题。@SagarPilkhwal在编辑问题时不要删除OPs代码,即使这些代码对问题来说似乎不必要/微不足道。好的,我会记住这一点,谢谢您..谢谢兄弟!我使用了android:Theme=“@style/Theme.AppCompat.Light.DarkActionBar!”“而且看起来很漂亮!再次感谢你!没问题。除此之外,您的代码几乎是一个低效率的例子。将所有URL设置为静态数组,编写一个方法来启动带有参数URL的webview。为每个活动设置一个侦听器。在侦听器中,检查发送单击的视图,在数组中找到URL并传递到该方法中。我在java/andrid中是新的,请告诉我好吗?Thankspublic类MainActivity扩展活动实现OnClickListener{private static String myUrls={“,”}private void launchUrl(字符串url){Intent myIntent=new Intent(MainActivity.this,WebviewActivity.class);myIntent.putExtra(“url”,url);startActivity(myIntent);}public void onClick(视图v){开关(v.getId()){case R.id.R.id.imageButton1:launchUrl(myURL[0]);break;case R.id.R.id.imageButton2:launchUrl(myURL[1]);break;默认值:break;}