递归startActivity()

时间:2014-11-29 12:36:33

标签: android android-activity

我正在研究为Android开发。这只是一个示例项目。所以我在按钮点击事件上创建了相同的Activity(参见代码)。在第一个Activity之后我可以看到带有“qwerty”文本的新Activity,但是在下一次单击文本时保持不变。我期望在每次新点击后看到更多文字(“qwerty”,“qwerty qwerty”,“qwerty qwerty qwerty”等等)。如何解释这种行为?

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);
}

}

4 个答案:

答案 0 :(得分:1)

替换

Intent intent = new Intent(this, MainActivity.class);

Intent intent = getIntent();

试试这个。这应该有用。

答案 1 :(得分:0)

修改onShowActivityButtonClick方法:

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
}

答案 2 :(得分:0)

尝试替换此行

_textView.setText(_textView.getText().toString() + " qwerty");

_textView.setText(intent.getStringExtra("str") + " qwerty");

答案 3 :(得分:0)

改变这段代码的和平:

if(intent.hasExtra("str"))
{
  _textView.setText(_textView.getText().toString() + " qwerty");
}

有了这个:

if(intent.hasExtra("str"))
{
   _textView.setText(intent.getStringExtra("str"));
}else{
   _textView.setText("qwerty");
}

改变这段代码的和平:

intent.putExtra("str", _textView.getText().toString());

有了这个:

intent.putExtra("str", tv.getText().toString()+" qwerty");