java - 使用 Android 操作栏上的按钮调用方法

标签 java android android-canvas

我现在有两个类,MainActivityDrawViewDrawView 工作正常并创建了一个允许我画线的 Canvas 。我不知道该怎么做的是,当我单击放置在操作栏上的按钮时,它会将 Canvas 上绘制的任何内容保存为图像。

我不知道如何使用我的 MainActivity 类中的以下代码段。我是否需要创建一个包含方法的新类,或者我可以在 MainActivity 类中创建该方法(相对于“//method goes here”这一行)?我还假设我必须从 DrawView 中检索 Canvas 对象,并将其作为参数传递给该方法。当它位于 DrawView 对象中时,我该怎么做?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    drawView = new DrawView(this);
    setContentView(drawView);
    drawView.requestFocus();
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
  switch (item.getItemId()) {
    case R.id.action_save:
       //method goes here
       return true;
    default:
       return super.onOptionsItemSelected(item);
  }
}

最佳答案

创建一个名为 drawView 的字段,它是私有(private)的但在整个类中都可以访问,如下所示:

private DrawView drawView;

像您现在所做的那样在 onCreate 方法中设置它:

drawView = new DrawView(this);

现在您可以在 onOptionsItemSelected 方法中访问 drawView 变量。这意味着您可以访问该类中的所有公共(public)变量。如果将绘制路径存储在公共(public)变量中,则可以访问它。您可以通过将 Canvas 设为 DrawView 类中的公共(public)字段来实现。就像您在 MainActivity 类中将 DrawView 设置为私有(private)字段一样。

您应该能够像这样访问 Canvas 。

在 DrawView 中创建字段:

public Canvas canvas;

你可以像这样访问它:

drawView.canvas;

关于java - 使用 Android 操作栏上的按钮调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20760676/

相关文章:

java - 使用 Bouncy CaSTLe 和 Node.js 加密时的不同结果

java - JPA注解@OneToMany关系不同记录

java - Android Studio 使用模块

java - 位图不起作用

android - 将字母间距设置为 drawTextOnPath

java - 为了创建一个让用户相互连接的 Android 应用程序,我需要什么? (注册及登录)

java - 焊接-001408 : Unsatisfied dependencies for repositories from Spring Data

android - 如何在android状态栏上的图标上显示数字

android - 在 Android 上使用资源所有者密码凭证实现 OAuth2

安卓 : Draw Circle With Text Inside