Android 递归startActivity()
我正在为android学习开发。这是唯一的示例项目。因此,我在按钮单击事件上创建相同的活动(请参见代码)。在第一次活动之后,我可以看到带有“qwerty”文本的新活动,但在下一次单击时,文本保持不变。我希望每次点击后都能看到更多的文字(“qwerty”、“qwerty qwerty”、“qwerty qwerty qwerty”等等)。如何解释这种行为Android 递归startActivity(),android,android-activity,Android,Android Activity,我正在为android学习开发。这是唯一的示例项目。因此,我在按钮单击事件上创建相同的活动(请参见代码)。在第一次活动之后,我可以看到带有“qwerty”文本的新活动,但在下一次单击时,文本保持不变。我希望每次点击后都能看到更多的文字(“qwerty”、“qwerty qwerty”、“qwerty qwerty qwerty”等等)。如何解释这种行为 public class MainActivity extends Activity { private TextView _textView;
public class MainActivity extends Activity {
private TextView _textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
_textView = (TextView)findViewById(R.id.textView);
Intent intent = getIntent();
if(intent.hasExtra("str"))
{
_textView.setText(_textView.getText().toString() + " qwerty");
}
}
public void onShowActivityButtonClick(View view){
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("str", _textView.getText().toString());
startActivity(intent);
}
}更换
Intent intent = new Intent(this, MainActivity.class);
与
试试这个。这应该有效。修改ShowActivity按钮上的
单击方法:
public void onShowActivityButtonClick(View view){
Intent intent = getIntent(); //Get current activity
intent.putExtra("str", _textView.getText().toString());
finish(); //Close current activity
startActivity(intent); //Restart current activity
}
试着换掉这条线
_textView.setText(_textView.getText().toString() + " qwerty");
与
更改此代码:
if(intent.hasExtra("str"))
{
_textView.setText(_textView.getText().toString() + " qwerty");
}
intent.putExtra("str", _textView.getText().toString());
为此:
if(intent.hasExtra("str"))
{
_textView.setText(intent.getStringExtra("str"));
}else{
_textView.setText("qwerty");
}
intent.putExtra("str", tv.getText().toString()+" qwerty");
和
更改此代码:
if(intent.hasExtra("str"))
{
_textView.setText(_textView.getText().toString() + " qwerty");
}
intent.putExtra("str", _textView.getText().toString());
为此:
if(intent.hasExtra("str"))
{
_textView.setText(intent.getStringExtra("str"));
}else{
_textView.setText("qwerty");
}
intent.putExtra("str", tv.getText().toString()+" qwerty");
试着这样检查:if(intent.getStringExtra(“str”)!=null)@Sartre:你看到我的答案了吗?对不起,我忘了这个问题。不,它不起作用。在这种情况下,即使是新的MainActivity也不会启动。