我使用此代码从首选项屏幕设置,如果我想要显示通知。问题是这个代码只有在我创建一个按钮进入首选项屏幕时才有效。我希望使用我的子菜单“设置”按钮进行首选项,而不是我布局中的按钮。 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();
}
我该怎么做?
答案 0 :(得分:0)
我希望使用我的子菜单“设置”按钮进行首选项,而不是a 我的布局里面的按钮。
您要找的是Options Menu,您可以通过阅读以下链接开始学习菜单:
答案 1 :(得分:0)
我希望我能正确理解这个问题:您可以在点击菜单项时开始活动,而不是点击按钮。如果是这样,那么您可以将代码从OnClickListener.onClick()
移动到处理菜单点击事件as described here的方法。