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" );
我有一个 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" );