java - 如何调用MainActivity方法

标签 java android

我正在尝试从 fragment 调用方法 share() 。 share() 位于 MainActivity.java

Button shareButton = new Button(getActivity());
shareButton.setOnClickListener(new View.onClickListener() {
   @Override
   public void onClick(View v) {
      MainActivity ma = new MainActivity();
      ma.share();              //Doesn't work! NullPointerException
   }
}

分享():

public void share() {
     Intent i = new Intent();
     i.setAction(Intent.ACTION_SEND);
     i.setType("text/plain");
     i.putExtra(Intent.EXTRA_TEXT, shareString);
     startActivity(Intent.createChooser(i, "Say Something"));
}

最佳答案

改变

MainActivity ma = new MainActivity();

MainActivity ma = (MainActivity) getActivity();

getActivity() 返回 Activity 的实例,因此必须对其进行强制转换

关于java - 如何调用MainActivity方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36744405/

相关文章:

java - XSD 中的模式验证是否不同?

java - Null GrantedAuthority 获取 Spring Security 的 UserDetails

java - 获取android中唯一的设备ID

android - 谁能推荐 ICS 的开源号码选择器?

java - 文件观察器不适用于 android 10 及更高版本

javascript - 如何在手机上查看我的 HTML 网页

Android getActionBar().setTitle 不起作用

android - 应用程序发送到后台并进行响应后,firemonkey android透明度表单变为可见

java - Jersey 2 多部分 pojo 始终为空

java - 盒装图元相对于图元的优缺点