我正在研究为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);
}
}
答案 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");