1
我最近开始使用android注解,并试图从类(MyService)中设置各种TextView的文本。从另一个类访问TextView的Android注解问题
不幸的是,当我尝试设置文本时,该应用程序与nullpointerexception崩溃。
我已经看过注释(documentation)和在stackoverflow上搜索相同的问题,但我无法找到正确的方法。
如果有人能帮助我以正确的方式做到这一点,我会很乐意。
因为我正在学习注释,所以请对downvotes温和。
其中TextViews通过所发起的类(DownloadsDialog)(@ViewById):
@EFragment(R.layout.downloads_dialog)
public class DownloadsDialog extends BaseDialog implements LoaderManager.LoaderCallbacks<BaseResponse> {
..
@ViewById(R.id.statusTxt)
TextView mStatusTxt;
@ViewById(R.id.sizeTxt)
TextView mSizeTxt;
@ViewById(R.id.progress1)
ProgressBar mProgress;
..
}
这是类(为MyService),从中我想组文本这些TextViews:
public class MyService extends IntentService {
..
public MyService() {
super("MyService");
}
..
class MyDownloadDownloadStatusListenerV1 implements DownloadStatusListenerV1 {
@Override
public void onDownloadComplete(DownloadRequest request) {
final int id = request.getDownloadId();
if (id == downloadId1) {
// How to access TextView in DownloadsDialog?
mStatusTxt.setText("Status: completed");
Log.e("TAG", "download completed");
}
}
..
}
Thx for replying,Ok so the“@ViewById”and“@EBean”should be removed in class MyService?如何在DownloadsDialog中访问TextViews?代码编辑。 – Simon
您既可以在服务中创建警报对话框并使用处理程序显示它,也可以在对话框中将字段设置为静态并将对话框对象传递给服务,然后从那里您可以使用静态引用修改textview对象。 – androidnoobdev
Ok thx,@ViewById(R.id.statusTxt)public static TextView mStatusTxt;但Android Studio会警告这会导致内存泄漏。 – Simon