原因:java.lang.NullPointerException:尝试使用我的按钮调用虚拟方法

时间:2018-08-05 16:30:31

标签: java android

我有一个NullPointerException,我无法摆脱它,我可以使用一些帮助,请:)

因此,我在第一个活动中有一个按钮,应该将我发送到该第二个活动(问题出在哪里),但是当我单击该按钮时,我的活动崩溃并显示此错误。 当我自己尝试第二个活动时,它工作正常,但是当我附加两个项目时,错误弹出。

这是错误:

public class entery_names extends AppCompatActivity {

RelativeLayout layout;
RelativeLayout.LayoutParams params;
Button mBtn_add_et = null;
int id;
int i;
static int previousid;

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //Submit = (Button)loginDialog.findViewById(R.id.Submit);
    mBtn_add_et = findViewById(R.id.btn_add_et);

    mBtn_add_et.setOnClickListener(new View.OnClickListener() { // this line is the problem apparently
        @Override
        public void onClick(View view) {
            if (id <= 4) {
                EditText et = new EditText(entery_names.this);
                id = View.generateViewId();
                et.setId(id);
                layout = findViewById(R.id.relativeLayout);
                params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
                params.addRule(RelativeLayout.BELOW, id);
                if (previousid == 0)
                    params.addRule(RelativeLayout.BELOW, R.id.et3);
                else
                    params.addRule(RelativeLayout.BELOW, previousid);
                previousid = et.getId();
                et.setHint("Enter Name");
                et.setHintTextColor(getResources().getColor(R.color.colorTransparentWhite));
                et.setTextColor(getResources().getColor(R.color.colorTransparentWhite));
                et.setX(findViewById(R.id.et1).getX());
                layout.addView(et, params);
            }
        }
    });
}

这是我的代码:

autoscan

}

谢谢!

2 个答案:

答案 0 :(得分:0)

下面的几行是罪魁祸首

  

mBtn_add_et = findViewById(R.id.btn_add_et);

     

mBtn_add_et.setOnClickListener

mBtn_add_et为空,请检查 findViewById 是否实际返回对象。

答案 1 :(得分:0)

此行:

mBtn_add_et = findViewById(R.id.btn_add_et);

产生一个空值。 因此问题可能是:
1)Button中没有btn_add_et且ID为activity_main
2)您为
setContentView(R.layout.activity_main);

中的活动添加了错误的布局