从一个包调用方法到另一个包

时间:2015-01-22 16:20:58

标签: android function methods package call

我是这个领域的初学者。 如何从一个包访问另一个包。

例如:

package add;

public class Addfunction {

    int a,b,sum;

    public int add(int x,int y)
    {
        a=x;
        b=y;
        sum=a+b;
        return sum;

    }
}

在我的第二个包中

package com.example.demoo;


public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int Result;

        Addfunction addfunction=new Addfunction();
        Result=addfunction.add(5, 10);

        Toast.makeText(getApplicationContext(), Result , Toast.LENGTH_LONG).show();
    }   
}

在运行时显示不幸的应用程序已停止。 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您访问Addfunction课程的方式没有错。但考虑两件事。

首先,您必须在Addfunction类定义之前为MainActivity类添加导入:

import add.Addfunction;

虽然你可能已经有了,但因为它不会编译。

其次,您可能正在使用此makeText

  

static Toast makeText(Context context,int resId,int duration)
  使用包含资源文本的文本视图制作标准Toast。

而不是:

  

static Toast makeText(Context context,CharSequence text,int duration)
  制作一个只包含文本视图的标准吐司。

注意第二个参数是第一种情况下的int,它指的是资源。而你只是传递计算结果,这可能是一个无效的资源ID。

您可能想尝试在String对象中构建消息并将其传递给makeText,如下所示:

String msg = "Result: " + Result;
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();