android 从相对弱引用设置 textview 的文本

android settext for textview from relative weakreference

我有一个 Activity 和一个名为 InnerClass 的内部 class ,其中它的 updateAfterDelay() 方法必须更新一个 TextView 。我想避免内存泄漏。所以我将 InnerClass 更改为静态并尝试像这样使用 WeakReference

public class MainActivity extends Activity {

    TextView textView;

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

        textView = (TextView) findViewById ( R.id.textView );
    }

    private static class InnerClass {

        private final WeakReference<TextView> targetTextView;

        public InnerClass(TextView targetTextView) {
            this.targetTextView = new WeakReference<TextView> ( targetTextView );
        }

        void updateAfterDelay() {
            targetTextView.setText ( "text" );
        }

    }

}

但是在 targetTextView.setText ( "text" ); 我得到这个编译错误:

cannot resolve method 'setText(java.lang.String)'

如何解决以上问题?

必须是targetTextView.get().setText("")

获取TextView并设置文本。

targetTextView.get().setText ( "text" );