我在活动A中有一个reset
button
,它可以正常工作,因为当单击活动B中的save
button
时,它可以清除所有文本并显示null。但这仅在传递给B之前textView中没有任何内容时才有效。
在以下情况下不起作用。
在活动A中,键入“ Project 123”,单击下一步button
转到B。然后我再次回到活动A,然后单击重置按钮以清除“ Project 123”。完成后,转到活动B并单击提交按钮。它显示“ Project 123”而不是“ null” ...
活动A
private TextView c;
String result; // 123
String name; // project
reset=(Button)claims.findViewById(R.id.button14); // reset button
Button button = (Button) claims.findViewById(R.id.button8); //next button
reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
c.setText("");
d.setText("");
e.setText("");
f.setText("");
g.setText("");
h.setText("");
}
});
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent(getActivity().getApplicationContext(), B.class);
if(c!=null){
intent.putExtra("name", name);
intent.putExtra("result", result);
}
});
return A;
}
活动B
Name=getIntent().getExtras().getString("name");
Result=getIntent().getExtras().getString("result");
save=(Button)findViewById(R.id.button8);
save.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if((Name!=null)&&(Result!=null)){
Toast.makeText(getApplicationContext(), Name+Result, Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(),"null", Toast.LENGTH_LONG).show();
}
}
});
这是因为您只清除setText但不清除字符串。
reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
c.setText("");
name="";
result="";
}
});
您必须在重置方法中添加name=""
和result=""
。它应该工作。
实际上,名称不是null,而是带有空字符串“”尝试在B活动中将!!null替换为!TextUtils.isEmpty()。