【发布时间】:2012-05-20 01:51:54
【问题描述】:
我的应用设置了一个足球队名称列表,并在单击文本视图时,在 Intent 方法中调用相应的类。
被调用的类加载一个大约 200kb 的 xml 布局文件。我想在后台加载 xml 文件时实现一个进度/加载图标。
我查看了这个网站并阅读了有关 异步任务的信息,但我不知道我需要在 doInBackground() 方法中编写什么代码。
这是我的课:
我有一个初始化的文本视图数组,以及单击时分配给每个文本视图的类名数组。
有人可以帮我吗?我是菜鸟。
作为替代方案,有没有办法在用户第一次点击应用时在后台加载所有这些类?
公共类 Transfers 扩展 Activity {
public final int[] teams = { R.id.ars, R.id.ast, R.id.bir, R.id.bla,
R.id.blp, R.id.bol, R.id.che, R.id.eve, R.id.ful, R.id.hul,
R.id.lee, R.id.liv, R.id.mid, R.id.mnc, R.id.mnu, R.id.nor,
R.id.nwu, R.id.por, R.id.qpr, R.id.sto, R.id.sun, R.id.swa,
R.id.tot, R.id.wes, R.id.wig, R.id.wol };
public final String[] teamnames = { "ars", "ast", "bir", "bla", "blp",
"bol", "che", "eve", "ful", "hul", "lee", "liv", "mid", "mnc",
"mnu", "nor", "nwu", "por", "qpr", "sto", "sun", "swa", "tot",
"wes", "wig", "wol" };
TextView tv;
Class classname;
String prefix = "ttj.android.ft.teams.";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.m_transfers);
for (int i = 0; i < teams.length; i++) {
final int j = i;
tv = (TextView) findViewById(teams[i]);
tv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
classname = Class.forName(prefix + teamnames[j]);
Intent open = new Intent(Transfers.this, classname);
startActivity(open);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
});
}
;
}
【问题讨论】:
-
可能是我的answer 帮助你:)
-
@Lucifer 谢谢。我看过你的解决方案。如何将此代码实施到我的课程中?任何帮助,将不胜感激。另外,请将您的回复移至答案,以便我赞扬您的知识! :-)
-
当您开始调用下一个活动时,只需显示 ProgressDialog,执行后台进程,然后在处理程序中将其关闭,非常简单。
-
@Lucifer 我已经实现了您的解决方案,并且在单击文本链接时会出现进度条,当新活动准备好时,会显示。但是,当我按后退键时,进度条再次出现并且没有停止。在 for 循环之外调用 dismiss 会导致应用程序崩溃。我没有在任何地方使用 Handler 方法,应该是吗?你能把 cmets 移到答案部分吗?这样我就可以分享我的代码。谢谢。
-
@Lucifer 修复它,让它工作。我创建了以下方法并在 onresume() 中调用它: public void hideProgressDialog() { if(this.pd != null) { this.pd.dismiss();这个.pd = null; } }
标签: android progress-bar classloader progressdialog