我有一个textview,它应该在intent(directorypicker)完成后更改文本。这不起作用。 继承人代码:
text = (TextView) findViewById(R.id.choose3);
text.setText(globalconstant.path);
当intent返回路径时,应该更改文本:
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);
;
}
});
}
它有什么不对吗?
请帮我!
非常感谢你
答案 0 :(得分:3)
您可能应该更改onActivityResult
答案 1 :(得分:0)
首先测试您是否编写代码,将text.setText(globalconstant.path);
替换为text.setText("Test message");
是否有效。
然后您可以添加Log.d("TestAfterStartAct", "Test Message")
打开突击队列并运行adb logcat
以显示来自手机的日志。尝试注意代码运行时,在新活动显示之前/之后/之后永远不会显示?
如果编辑不是来自UI线程,有时你可能会因为没有更新GUI部分而得到错误,请为你text.postInvalidate()
调用以更新textview的GUI。
答案 2 :(得分:0)
我遇到了同样的问题。对我来说,问题是在调用onActivityResult之后调用onStart。在onStart中,我正在使用默认值为视图创建一个新的文本视图。
在我的情况下,我通过保存onActivityResult中的值来解决它,然后在onStart函数中应用这些值。
-James