试图更改TextView字符串

时间:2013-11-02 22:31:09

标签: android string settext

我一直在寻找答案,并尝试过很多东西,但没有任何工作......

所以,我正在做我认为简单的应用程序(我刚开始学习)

所以我有一个活动将一些字符串发送到另一个字符串,其中一些TextViews应该将值转换为新的字符串,但这不会发生。这里有代码:

public class LoginActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);


        if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }

        Intent intent = getIntent();
        String mail = intent.getStringExtra(MainActivity.MAIL);
        String password = intent.getStringExtra(MainActivity.PASSWORD);

        setContentView(R.layout.fragment_login);
        TextView displayMailSetter = (TextView) findViewById(R.id.mailView);
        displayMailSetter.setText(mail);
        displayMailSetter.postInvalidate();

        TextView displayPasswordSetter = (TextView)findViewById(R.id.passwordView);
        displayPasswordSetter.setText(password);
        displayPasswordSetter.postInvalidate();

        displayMailSetter.postInvalidate();

        setContentView(R.layout.activity_login);
    }
}

1 个答案:

答案 0 :(得分:1)

尝试取出以下代码:

displayMailSetter.postInvalidate();
// Don't take out your displayPasswordSetter initilization and setText

displayPasswordSetter.postInvalidate();

displayMailSetter.postInvalidate();

setContentView(R.layout.activity_login);

更改以下代码行:

        super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

        super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_login);

并取出原始(在意图下)。

setContentView(R.layout.fragment_login);

问题在于您将布局设置为3种不同的布局。第一个和第三个是相同的布局,但没有TextViews。第一个和第三个是无关紧要的,你应该只设置一次布局。一旦你将它设置为fragment_login,布局就有了TextViews,设置了它们的文本,但是布局被改为没有TextViews的布局。