Java 蓄意的问题
我一直在与意图斗争,但我一直在这段代码中得到一个错误。我一直得到一个致命的异常Java 蓄意的问题,java,android,android-intent,nullpointerexception,Java,Android,Android Intent,Nullpointerexception,我一直在与意图斗争,但我一直在这段代码中得到一个错误。我一直得到一个致命的异常 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.bac1.problemcodereference/com.example.bac1.problemcodereference.MainActivity}: java.lang.NullPointerException: Attempt to in
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.bac1.problemcodereference/com.example.bac1.problemcodereference.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
我的项目代码:
public class MainActivity extends AppCompatActivity implements Serializable {
private String cPcode;
Button help , sub;
EditText codetext;
Intent intent = new Intent (this, Main2Activity.class);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sub = (Button) findViewById(R.id.submit);
help = (Button) findViewById(R.id.help);
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = codetext.getText().toString();
MainActivity onew = new MainActivity();
onew.setcPcode(text);
intent.putExtra("stuff",onew);
startActivity(intent);
}
});}
在这条线上
Intent intent = new Intent (this, Main2Activity.class);
您的活动未完全构造,因此在oncreate
函数之后或内部使用此调用,因为此
表示上下文,该上下文将为null
,因此出现异常
就这样吧
public class MainActivity extends AppCompatActivity implements Serializable {
private String cPcode;
Button help , sub;
EditText codetext;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intent = new Intent (this, Main2Activity.class);
sub = (Button) findViewById(R.id.submit);
help = (Button) findViewById(R.id.help);
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = codetext.getText().toString();
MainActivity onew = new MainActivity();
onew.setcPcode(text);
intent.putExtra("stuff",onew);
startActivity(intent);
}
});}
另一个问题是,为什么要传递一个新的mainActivity
对象,所以更好的选择是创建一个单独的POJO类,并使用它在此行存储数据
Intent intent = new Intent (this, Main2Activity.class);
您的活动未完全构造,因此在oncreate
函数之后或内部使用此调用,因为此
表示上下文,该上下文将为null
,因此出现异常
就这样吧
public class MainActivity extends AppCompatActivity implements Serializable {
private String cPcode;
Button help , sub;
EditText codetext;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intent = new Intent (this, Main2Activity.class);
sub = (Button) findViewById(R.id.submit);
help = (Button) findViewById(R.id.help);
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = codetext.getText().toString();
MainActivity onew = new MainActivity();
onew.setcPcode(text);
intent.putExtra("stuff",onew);
startActivity(intent);
}
});}
另一个问题是为什么要传递一个新的mainActivity
对象,所以更好的选择是创建一个单独的POJO类并使用它来存储数据