Android-单击图像按钮时崩溃

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

当我单击我的imagebutton时,我的应用程序崩溃。 它发生在模拟器上,也发生在真实的手机上。我在这里和其他论坛用一些线程检查了我的代码,但我没有发现错误。我很高兴有任何解决办法

主课

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
use
android: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;}