优化:抽离溢出菜单代码到BaseActivity
parent
85d944c91a
commit
3c32b696c8
@ -0,0 +1,71 @@
|
||||
package com.idormy.sms.forwarder;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class BaseActivity extends AppCompatActivity {
|
||||
|
||||
private final String TAG = "BaseActivity";
|
||||
|
||||
//启用menu
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.menu_main, menu);
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
//menu点击事件
|
||||
@SuppressLint("NonConstantResourceId")
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
Intent intent;
|
||||
switch (item.getItemId()) {
|
||||
case R.id.to_app_list:
|
||||
intent = new Intent(this, AppListActivity.class);
|
||||
break;
|
||||
case R.id.to_clone:
|
||||
intent = new Intent(this, CloneActivity.class);
|
||||
break;
|
||||
case R.id.to_about:
|
||||
intent = new Intent(this, AboutActivity.class);
|
||||
break;
|
||||
case R.id.to_help:
|
||||
//Uri uri = Uri.parse("https://gitee.com/pp/SmsForwarder/wikis/pages");
|
||||
//intent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
intent = new Intent(this, HelpActivity.class);
|
||||
break;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
startActivity(intent);
|
||||
return true;
|
||||
}
|
||||
|
||||
//设置menu图标显示
|
||||
@Override
|
||||
public boolean onMenuOpened(int featureId, Menu menu) {
|
||||
Log.d(TAG, "onMenuOpened, featureId=" + featureId);
|
||||
if (menu != null) {
|
||||
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
|
||||
try {
|
||||
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
|
||||
m.setAccessible(true);
|
||||
m.invoke(menu, true);
|
||||
} catch (NoSuchMethodException e) {
|
||||
Log.e(TAG, "onMenuOpened", e);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onMenuOpened(featureId, menu);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue