我正在尝试在警告对话框中使用XML格式的按钮,但是当活动尝试加载时应用程序崩溃。
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,但它们使用onCreate方法而不是onCreateDialog方法。
答案 0 :(得分:1)
你试图在对象v(视图)上调用findViewById(...),甚至在它被夸大之前。
我假设你得到一个导致崩溃的NullPointerException
请查看此链接 - http://www.mkyong.com/android/android-custom-dialog-example/ 以获取更多信息。
答案 1 :(得分:0)
在实例化View v .....
之前,您试图找到按钮ID首先实例化你的inflater和View对象,然后是你的按钮。
SELECT REPLACE(Address, ',', '') AS Address, * FROM MailingList