我有一个设置屏幕,您可以在其中选择,添加和删除应用程序的配置。创建其他类的对象
当添加一个配置时,我创建了一个inputBox类的新实例(扩展设置活动类 - 我存储标准android文本输入框的过程)以查询新配置的名称。
在此输入框的Onclick中,将调用superClass(设置活动)中的过程以创建新的配置对象。 此过程从活动(例如选定的微调元素)查询一些事情,包括seekBar的进度。
这是我得到一个NPE:
java.lang.NullPointerException: Attempt to invoke virtual method'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
同一个对象的创建过程也被称为上的应用程序的初始化和工作得很好。
我从Error了解到,问题是当从子类调用过程时,变量的引用不再被设置 - 因此不能被查询。
所以问题:
如何从另一个类调用过程时查询活动元素的值?
我知道这个话题相当广泛,但我现在无法弄清楚现在几天
感谢您的帮助提前。
这是问题的一个方案:
public class Settings extends AppCompatActivity{
Context settingsContext = this;
private Spinner someSpinner;
//other elements
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
someSpinner = (Spinner) findViewById(R.id.someView);
//other elements
addNewConfig.setOnClickListener((v) --> {
inputBox inputBox = new inputBox("OK", "Cancel", settingsContext, "sourcePath",1,1);
newConfigName = inputBox.show();
});
public sSetting makeNewConfig(String name, String sourcePath, int dataFrom, int dataTo){
sSetting newConfig;
newConfig = new sSetting("NAME", someSpinner.getProgress()>0, ...);
return newConfig;
}
}
而且输入框:
public final class inputBox extends Settings {
//someVars
inputBox(String buttonOk, String buttonCancel, Context setContext, String sourcePath, int dataFrom, int dataTo){
//variable setters
}
private String show() {
//show msgbox
//onclick ok
super.makeNewConfig(....);
}
的构成要素也只包含数据,但我必须从设置屏幕上查询数据(例如关闭/打开音乐seekbar:我在配置对象中保存true或false) –
'Settings扩展AppCompatActivity','inputBox extends Settings','new inputBox( ...)** ......你不应该这样做** ......阅读一些官方指南,尝试了解如何使用Activity和其他Android组件...... – Selvin
什么是活动的状态这是阿尔lowed? –