我有10到12 Activity
,所有Activity
都有Help Menu
作为Option Menu
。
我成功完成了以下代码创建它并在点击它们时显示帮助。
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(cacheDir, "HELP.pdf")),"application/pdf");
context.startActivity(intent);
但是我想为所有Activity减少这个代码,为此我创建了一个类并创建了一个方法,但我仍想减少代码。
我搜索过并发现onClick
中有OptionMenu
属性,但我没有得到如何使用它。
请帮助..
答案 0 :(得分:0)
创建一个类,例如调用它Helper
,在其中放置一个名为handleMenu(int id)
的方法,并在其中完成所有工作。然后,在每个活动中,您从onOptionsItemSelected()
调用该方法,传递所选项目的ID。
答案 1 :(得分:0)
我为openFile创建了以下类:
public class OpenHelpFile {
File cacheDir;
Context context;
/* Constructor */
public OpenHelpFile(Context context) {
this.context = context;
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir = new File(android.os.Environment.getExternalStorageDirectory(), "OOPS");
else
cacheDir = context.getCacheDir();
if (!cacheDir.exists())
cacheDir.mkdirs();
try {
File helpFile = new File(cacheDir, "OOPS.pdf");
if (!helpFile.exists()) {
InputStream in = context.getAssets().open("OOPS.pdf");
OutputStream out = new FileOutputStream(helpFile);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
Log.d(TAG, "File Copied...");
}
Log.d(TAG, "File exist...");
} catch (FileNotFoundException ex) {
Log.d(TAG, ex.getMessage() + " in the specified directory.");
System.exit(0);
} catch (IOException e) {
Log.d(TAG, e.getMessage());
}
}
public void openHelpFile() {
/* OPEN PDF File in Viewer */
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(cacheDir, "OOPS.pdf")), "application/pdf");
context.startActivity(intent);
}
}
我从每个OptionMenu
都这样称呼它:
new OpenHelpFile(context).openHelpFile();