java - 如何从 Activity2 的按钮更改 Activity1 的 actionBar 标题
问题描述
我正在尝试在activity2(设置页面)中创建一个按钮,当单击该按钮时,activity1(MainActivity)的标题将更改为我设置的内容。我一直在尝试使用接口来执行该功能,但它给了我一个空指针异常错误。
主要活动
@Override
public void changeActionBarTitle(String editText){
actionTitle = editText;
setTitle(actionTitle);
};
界面
public interface ActionBarInterface {
void changeActionBarTitle(String editText);
}
设置页面(活动二)
public class SettingsPage extends AppCompatActivity {
ActionBarInterface actionBarInterface;
Button editCompanyNameButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings_page);
setTitle("Settings");
editCompanyNameButton = findViewById(R.id.editCompanyNameButton);
editCompanyNameButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
actionBarInterface.changeActionBarTitle("test");
}
});
}
}
谢谢。
解决方案
它给出了一个null pointer exception error
因为actionBarInterface
没有初始化。
查看有关“从活动中获取结果”的主题,使用类和函数,例如Intent
、startActivityForResult
、onActivityResult
。
推荐阅读
- mongodb - 如何在 docker-compose 之后运行 Mongo shell 命令?
- openrefine - 如何在openrefine的if语句中使用or语句
- swift - Codable: decoding by key
- python - 如何在不使用正则表达式的情况下从不匹配的 html 中删除结束标签?
- react-native - 如何使用 react-native 规范化 redux-form 以防止更多输入?
- angularjs - AngularJS - 来自控制器的工厂 - 没有从 $http.get 获得价值
- javascript - DiscordAPIError:未知消息
- mysql - 需要检查电子邮件是否存在,如果存在则更新记录。导轨
- c# - 使用 System.Net.Http 避免 TRUSTWORTHY ON 和 PERMISSION_SET = UNSAFE
- python - 使用来自另一个数据框的数据更新一个数据框,用于一个特定列 - Pandas 和 Python