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

时间:2013-12-24 12:07:48

标签: java android android-canvas

我目前有两个班级,MainActivityDrawViewDrawView工作正常并创建一个允许我绘制线条的画布。我不知道怎么做的是当我点击我放在动作栏上的按钮时,它会将画布上绘制的任何内容保存为图像。

我不知道如何在我的MainActivity课程中使用以下代码段。我是否需要使用其中的方法创建一个新类,或者我可以在MainActivity类中创建该方法(相对于行“//方法在这里”)?我还假设我必须从DrawView检索画布对象,并将其作为参数传递给方法。如果它在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);
  }
}

2 个答案:

答案 0 :(得分:2)

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

private DrawView drawView;

像你现在一样在onCreate方法中设置它:

drawView = new DrawView(this);

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

您应该可以像这样访问画布。

在DrawView中创建字段:

public Canvas canvas;

你可以像这样访问它:

drawView.canvas;

答案 1 :(得分:0)

从操作栏按钮调用方法,并在该方法中编写保存代码。如果方法在其他类中,则使用static关键字来调用该方法并将该方法定义为static,或者您可以创建类对象来访问它。