0

我有一个文本视图,它应该在意图(目录选择器)完成后更改文本。这不起作用。继承人的代码:

text = (TextView) findViewById(R.id.choose3);
        text.setText(globalconstant.path);

当意图返回路径时应该更改文本:

private void addListenerOnButton() {
        choose_button = (Button) findViewById(R.id.button1);
        choose_button.setEnabled(true);
        choose_button.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                // DirectoryPicker.START_DIR = "/mnt/";
                Intent intent = new Intent(settings.this, DirectoryPicker.class);
                startActivityForResult(intent, DirectoryPicker.PICK_DIRECTORY);
                // text.setText(globalconstant.path);
                text = (TextView) findViewById(R.id.choose3);
                text.setText(globalconstant.path);
                ;

            }
        });

    }

它出什么问题了?请帮我!非常感谢你

4

3 回答 3

3

可能,您应该更改文本onActivityResult

于 2012-09-12T19:09:40.770 回答
0

首先测试你的代码是否工作,替换text.setText(globalconstant.path);text.setText("Test message");这个工作与否。

然后,您可以添加一个Log.d("TestAfterStartAct", "Test Message")打开的命令行并运行adb logcat以显示手机中的日志。尝试注意代码何时运行,在显示新活动之前/之后/从不显示?

如果不是从 UI 线程进行编辑,有时您可能会在没有更新 GUI 部件的情况下出现错误,请要求您text.postInvalidate()更新 textview 的 GUI。

阅读更多关于postInvalidate() 做什么?

于 2012-09-12T19:16:13.093 回答
0

我有同样的问题。对我来说,问题是在调用 onActivityResult 之后调用 onStart 。在 onStart 中,我使用默认值对正在创建新文本视图的视图进行膨胀。

在我的情况下,我通过保存 onActivityResult 中的值然后在 onStart 函数中应用这些值来解决它。
-詹姆士

于 2014-01-10T17:01:00.543 回答