如何从我的活动中的另一个活动中读取方法代码?

时间:2019-04-08 17:01:29

标签: java android methods

我想从我的活动中的另一个活动中调用方法。我尝试了此代码,但我的应用程序崩溃了! :

第二活动:

package com.mycompany.myapp;

import android.app.*;
import android.os.*;
import android.widget.*;

public class SecondActivity extends Activity
{


public void toast()
{
    Toast.makeText(getApplicationContext(),"hello",50).show();
}

}

MainActivity:

package com.mycompany.myapp;

import android.app.*;
import android.os.*;
import com.mycompany.myapp.*;
public class MainActivity extends Activity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        SecondActivity s=new SecondActivity();
        s.toast();

    }
}

什么问题?!请帮我。谢谢。

2 个答案:

答案 0 :(得分:0)

我认为您混淆了Java类和Activity。如果要声明不需要布局和活动内容的方法,请创建一个Java类并具有公共方法。

1)MainActivity-活动类

public class MainActivity extends AppCompatActivity {

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

        ToastClass toastClass = new ToastClass();
        toastClass.toast(getApplicationContext(), "Hey dude!!");
    }
}

2)ToastClass-Java类

public class ToastClass {
    public void toast(Context context, String msg) {
        Toast.makeText(context ,"hello",Toast.LENGTH_SHORT).show();
    }
}

希望,有帮助!

答案 1 :(得分:0)

您没有实例化活动,而是有意启动它们

Intent intentSecondActivity = new Intent(this,SecondActivity.class);
intentSecondActivity.putExtra("methodToStart","toast");
startActivity(intentScheduleActivity);

在secondActivity中,阅读其他内容并启动方法:

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.secondActivity);

    String method = getIntent().getStringExtra("method");
    if (method.equals("toast"){
        toast();
    }
}

或者,您可能想研究片段。