Android 从字符串到长字符串的Null指针异常

Android 从字符串到长字符串的Null指针异常,android,Android,我参加了一项活动: ... super.onCreate(savedInstanceState); setContentView(R.layout.configure); edit1=(EditText) findViewById(R.id.edit1); edit2=(EditText) findViewById(R.id.edit2); edit11=edit1.getText().toString(); ed

我参加了一项活动:

...
super.onCreate(savedInstanceState);
        setContentView(R.layout.configure);

        edit1=(EditText) findViewById(R.id.edit1);
        edit2=(EditText) findViewById(R.id.edit2);
        edit11=edit1.getText().toString();
        edit22=edit2.getText().toString();
        btn=(View) findViewById(R.id.btn);
        btn.setOnClickListener(this);

}

     public void onClick(View v) {
        switch (v.getId()){
        case R.id.btn:
             Intent i=new Intent(this,selection.class);
             i.putExtra("code_value",edit11);
             i.putExtra("time_value",edit22);
             startActivity(i);  
             break;

     }
...
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.selection);


        String code_value=getIntent().getExtras().getString("code_value");
        String time_value=getIntent().getExtras().getString("time_value");
        long thetime=Long.parseLong(time_value);
..

// Start service using AlarmManager
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.SECOND, 10);
        Intent intent = new Intent(selection.this, selection.class);
        PendingIntent pintent = PendingIntent.getService(selection.this, 0, intent,
                0);
        AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
                thetime, pintent);
在评选活动中:

...
super.onCreate(savedInstanceState);
        setContentView(R.layout.configure);

        edit1=(EditText) findViewById(R.id.edit1);
        edit2=(EditText) findViewById(R.id.edit2);
        edit11=edit1.getText().toString();
        edit22=edit2.getText().toString();
        btn=(View) findViewById(R.id.btn);
        btn.setOnClickListener(this);

}

     public void onClick(View v) {
        switch (v.getId()){
        case R.id.btn:
             Intent i=new Intent(this,selection.class);
             i.putExtra("code_value",edit11);
             i.putExtra("time_value",edit22);
             startActivity(i);  
             break;

     }
...
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.selection);


        String code_value=getIntent().getExtras().getString("code_value");
        String time_value=getIntent().getExtras().getString("time_value");
        long thetime=Long.parseLong(time_value);
..

// Start service using AlarmManager
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.SECOND, 10);
        Intent intent = new Intent(selection.this, selection.class);
        PendingIntent pintent = PendingIntent.getService(selection.this, 0, intent,
                0);
        AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
                thetime, pintent);
我想在alarm.setRepeating中使用长“thetime”。
但是它给了我nullpointerexception..

您需要从edittext的内部按钮单击中获取文本,而不是从Activity的创建中获取文本

 public void onClick(View v) {
        switch (v.getId()){
        case R.id.btn:

             // retrieve text here from EditText 

             edit11=edit1.getText().toString();
             edit22=edit2.getText().toString();
             Intent i=new Intent(this,selection.class);
             i.putExtra("code_value",edit11);
             i.putExtra("time_value",edit22);
             startActivity(i);  
             break;

     }

您需要从edittext的内部按钮单击中获取文本,而不是从活动的创建中获取文本

 public void onClick(View v) {
        switch (v.getId()){
        case R.id.btn:

             // retrieve text here from EditText 

             edit11=edit1.getText().toString();
             edit22=edit2.getText().toString();
             Intent i=new Intent(this,selection.class);
             i.putExtra("code_value",edit11);
             i.putExtra("time_value",edit22);
             startActivity(i);  
             break;

     }

您的问题是在初始化后立即调用
getText()
,它总是返回空字符串

您需要恰好在处理文本时调用getText(),因此需要将其移动到
onClick()
方法:

public void onClick(View v) {
        switch (v.getId()){
        case R.id.btn:
             String e1 = edit1.getText().toString();
             String e2 = edit2.getText().toString();
             Intent i=new Intent(this,selection.class);
             i.putExtra("code_value", e1);
             i.putExtra("time_value", e2);
             startActivity(i);  
             break;

     }

您的问题是在初始化后立即调用
getText()
,它总是返回空字符串

您需要恰好在处理文本时调用getText(),因此需要将其移动到
onClick()
方法:

public void onClick(View v) {
        switch (v.getId()){
        case R.id.btn:
             String e1 = edit1.getText().toString();
             String e2 = edit2.getText().toString();
             Intent i=new Intent(this,selection.class);
             i.putExtra("code_value", e1);
             i.putExtra("time_value", e2);
             startActivity(i);  
             break;

     }

@普拉斯佩克祝贺兄弟30K@prasperK:也许你能帮我做这个?谢谢@普拉斯佩克祝贺兄弟30K@prasperK:也许你能帮我做这个?谢谢!:我投了你的票,接受了另一个答案,因为它是第一个。谢谢:我投了你的票,接受了另一个答案,因为它是第一个。谢谢