使用子菜单进入首选项屏幕

时间:2013-07-09 05:25:52

标签: android button sharedpreferences android-preferences android-notifications

我使用此代码从首选项屏幕设置,如果我想要显示通知。问题是这个代码只有在我创建一个按钮进入首选项屏幕时才有效。我希望使用我的子菜单“设置”按钮进行首选项,而不是我布局中的按钮。 Thsi是代码

       // prefer
         setPref.setOnClickListener(new Button.OnClickListener(){    
                @Override    
                public void onClick(View arg0) {     
                    // TODO Auto-generated method stub   
                    Intent intent = new Intent(

                            MainActivity    .this, 

                            settings.class);

                    startActivityForResult(intent, 0);

                }});         

            checkPref();

        }

        @SuppressLint("NewApi")
        private void checkPref(){

            SharedPreferences myPref 

            = PreferenceManager.getDefaultSharedPreferences(

                    MainActivity.this);

            boolean pref_opt1 = myPref.getBoolean("pref_opt1", false); 


            if (pref_opt1){
                NotificationManager notifi = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                Notification notification = new Notification.Builder(getApplicationContext())
                .setContentTitle("Battery Informations")
                .setContentText("Batteria al")
                .setSmallIcon(R.drawable.icon_small_not)
                //.setLargeIcon(aBitmap)
                .setTicker("Livello")
                .build();

                notification.flags = Notification.FLAG_ONGOING_EVENT;
                Intent i = new Intent(MainActivity.this, MainActivity.class); 
                PendingIntent penInt = PendingIntent.getActivity(getApplicationContext(), 0 , i , 0);
                notifi.notify(215,notification);
                } else {
                NotificationManager notifi = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                notifi.cancel(215);
                }
        }



        @Override

        protected void onActivityResult(int requestCode, int resultCode, Intent data) {

            // TODO Auto-generated method stub

            super.onActivityResult(requestCode, resultCode, data);

            checkPref();

    }

我该怎么做?

2 个答案:

答案 0 :(得分:0)

  

我希望使用我的子菜单“设置”按钮进行首选项,而不是a   我的布局里面的按钮。

您要找的是Options Menu,您可以通过阅读以下链接开始学习菜单:

答案 1 :(得分:0)

我希望我能正确理解这个问题:您可以在点击菜单项时开始活动,而不是点击按钮。如果是这样,那么您可以将代码从OnClickListener.onClick()移动到处理菜单点击事件as described here的方法。