【问题标题】:How to read a method codes from another activity in my activity?如何从我的活动中的另一个活动中读取方法代码?
【发布时间】:2019-04-08 17:01:29
【问题描述】:

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

第二个活动:

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();
}

}

主活动:

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();

    }
}

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

【问题讨论】:

  • 请发布错误
  • 没有错误。但是当我玩这个应用程序时,我的应用程序强制关闭了!
  • 检查你的 logcat。它应该在那里显示有意义的错误。
  • Activity 类需要经历整个生命周期(启动或意图),因此仅“新建”一个可能意味着“getApplicationContext”调用失败。
  • LogCat 是这样的:

标签: java android methods


【解决方案1】:

我认为您混淆了 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();
    }
}

希望,它有帮助!

【讨论】:

  • 谢谢。它对我有帮助。
【解决方案2】:

您不会实例化活动,而是以意图启动它们

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

在 secondActivity 中读取 extras 并启动方法:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-08-25
    • 1970-01-01
    • 2011-10-20
    • 2011-10-19
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多