重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
java类有两种方法一种是类方法就是用static修饰的,一种是实例方法,就是没有static修饰的方法。类方法可以同时类名.方法名的方式调用。而实例方法必须先生存类的实例在通过实例.方法名的方式调用。例如:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟主机、营销软件、网站建设、西平网站维护、网站推广。
public class MethodCall
{
public static void main(String[] args)
{
Test.sayStatic();
Test test = new Test();
test.sayInstance();
}
}
class Test
{
public static void sayStatic()
{
System.out.println("这是一个静态方法。");
}
public void sayInstance()
{
System.out.println("这是一个实例方法。");
}
}
1、定义其他类
public class Other{//定义一个普通类
public void show(){//定义一个普通方法
}
public static void cal(){//定义类的静态方法
}
}
2、实例化其他类或者调用其他类的静态方法
在android中调用:
Other ot = new Other();//实例化Other类
ot.show();//调用Other类的普通方法
Other.cal();//类名.方法的方法调用静态方法
方法如下:
1.调用非静态方法,方法必须声明为public
public class Test
{
public String getB()
{
return "B";
}
}
调用方法:
1.Test test=new Test();
test.getB();
2.new Test().getB();
2.调用静态方法,方法必须声明为public
public class Test
{
public static String getB()
{
return "B";
}
}
调用方法:
Test.getB()
您好,很高兴能帮助您,
Android中webview和js之间的交互
1.android中利用webview调用网页上的js代码。
Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,,然后通过loadUrl就可以直接进行调用,如下所示:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");
2. 网页上调用android中java代码的方法
在网页中调用java代码,需要在webview控件中添加javascriptInterface。如下所示:
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
Toast.makeText(Test.this, "测试调用java", Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
在网页中,只需要像调用js方法一样,进行调用就可以
div id='b'a onclick="window.demo.clickOnAndroid()"b.c/a/div
3. Java代码调用js并传参
首先需要带参数的js函数,如function test(str),然后只需在调用js时传入参数即可,如下所示:
mWebView.loadUrl("javascript:test('aa')");
4.Js中调用java函数并传参
首先一样需要带参数的函数形式,但需注意此处的参数需要final类型,即得到以后不可修改,如果需要修改其中的值,可以先设置中间变量,然后进行修改。如下所示:
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid(final int i) {
mHandler.post(new Runnable() {
public void run() {
int j = i;
j++;
Toast.makeText(Test.this, "测试调用java" + String.valueOf(j), Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
然后在html页面中,利用如下代码div id='b'a onclick="window.demo.clickOnAndroid(2)"b.c/a/div,
即可实现调用
你的采纳是我前进的动力,还有不懂的地方,请你继续“追问”!
如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助!
通常,您不应该以这种方式创建新的 MainActivity 实例。要打开一个新的 MainActivity,请使用 Intent。在您的情况下,您应该引用原始 MainActivity 实例,并在那里调用此方法。不要以任何方式创建新的,因为您已经在运行它。
一个简单的解决方法:
MainActivity.this.myMethod("Hello there")
您不必存储mContext. 你已经在 MainActivity 里面了。
因此,完整的代码将是:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = findViewById(R.id.webview);
myWebView.loadUrl("");
myWebView.addJavascriptInterface(new WebAppInterface(), "Android");
}
public void myMethod(String test){
Toast.makeText(this, test, Toast.LENGTH_SHORT).show();
}
public class WebAppInterface {
/** Show a toast from the web page */
@JavascriptInterface
public void showToast(String toast) {
MainActivity.this.myMethod("Hello there");
}
}
}
实际上,我认为您甚至可以避免使用MainActivity.this., 并myMethod直接调用。
想在一个Activity里面调用另外一个Activity的方法主要有接口回调和静态方法。但是除了静态方法之外,并不推荐接口回调方法。
其中静态方法实现参考如下表述:
需求:在A activity中调用 B activity的methodB()。
实现:使用静态实现。
在B方法中定义:
1
public static void methodB(){}
在A中需要使用methodB()的地方这样调用:
1
B.methodB();
为何不推荐在一个Activity中调用另一个Activity呢。因为Android系统运行内存较小,故其系统会在需要的时候将后台的进程自动清理掉以为当前进程提供运行内存。而android移动设备除了当前正在显示的activity意外,其他的activity都在后台运行。例如你在A activity中调用B activity 的方法时候,有可能B activity已经被销毁,所以,只能使用B activity的静态方法。
最后的做法是将Activity界面显示和逻辑分开写在不同的类中,这样才复合程序开发的MVC框架还有Java编程的面向对象思想。