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:也许你能帮我做这个?谢谢!:我投了你的票,接受了另一个答案,因为它是第一个。谢谢:我投了你的票,接受了另一个答案,因为它是第一个。谢谢