アプリの設定を選択、追加、削除する設定画面があります。他のクラスからオブジェクトを作成する
コンフィグレーションを追加するときに、新しいコンフィグレーションの名前を照会するために、inputBoxクラスの新しいインスタンスを作成します(設定アクティビティクラスを拡張して標準のアンドロイドテキスト入力ボックスのプロシージャを保存した場所)。
この入力ボックスの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
同じオブジェクトの作成手順は、アプリの初期化時に呼び出されると、うまく動作します。
私は、子クラスからプロシージャを呼び出すときに、画面の対応する要素への変数の参照がもう設定されておらず、したがって照会できないという問題があることを理解しています。
質問:
プロシージャが別のクラスから呼び出されたときに、アクティビティ要素の値をクエリするにはどうすればよいですか?
私はトピックがかなり広いと知っていますが、数日後には分かりません。
おかげさまで、ありがとうございました。ここで
が問題のスキームである:
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;
}
}
そしてINPUTBOX:問題を解決するため
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(....);
}
の構成要素は、データのみが含まれていません私は設定画面からデータを照会する必要があります(例えば、音楽シークバーをオフ/オンにします:設定オブジェクトにtrueまたはfalseを保存します) –
'設定はAppCompatActivityを拡張します'、 'inputBox extends Settings'、' new inputBox ...) '... **あなたはこれを絶対にしてはいけません** ...いくつかの公式ガイドを読んで、アクティビティやその他のアンドロイドコンポーネントを使って作業する方法を理解してみてください... – Selvin
アクティビティの状態は?これはすべてです低い? –