XMLで作成されたボタンをアラートダイアログで使用しようとしていますが、アクティビティの読み込みを試みるとアプリがクラッシュします。onCreateDialogのonClickListenerを使用するとアプリケーションがクラッシュする
package dtt.bob.rsrpechhulp;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
public class CallWindow extends DialogFragment implements View.OnClickListener{
LayoutInflater inflater;
View v;
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
Button annuleren = (Button) v.findViewById(R.id.annuleren); //here is the problem I assume
annuleren.setOnClickListener(this);
inflater = getActivity().getLayoutInflater();
v = inflater.inflate(R.layout.call, null);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(v);
return builder.create();
}
public void onClick(View v) {
switch(v.getId()){
case R.id.annuleren:
annulerenClick();
break;
}
}
//annuleren
private void annulerenClick(){
dismiss();
}
これを修正する方法についてのアイデアはありますか?私は他のアクティビティでonClickListenersを使用しましたが、それらはonCreateDialogメソッドの代わりにonCreateメソッドにありました。あなたは、ビューVをインスタンス化する前に、ボタンのIDを見つけることを試みた
あなたはここでエラーをデバッグ/ペーストしないでください。アプリがクラッシュする無限の理由があります。 –
[Null Pointer Exceptionとは何ですか? http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) –
これを確認してください:http://stackoverflow.com/questions/ 25803727/android-setonclicklistener-method-how-does-it-work –