我想在AsyncClass的OnPostMethod中的imageview和textview中设置图像和文本,就像我在“do in background”方法中进行一些网络操作一样,对于特定的响应,我只想用特定的方式填充imageview和textview图像和文字。
有人可以告诉我如何在OnPostMethod中设置图像。我想知道是否有人可以在下面的代码中告诉我我犯的错误
public class testing_async extends Activity {
private ProgressDialog progressDialog;
String s;
ImageView im;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testing_async);
new GetCategoryList().execute(s);
im = (ImageView) findViewById(R.id.im1);
}
//
// THE AsyncTask Class for GetCategoryList....
//
class GetCategoryList extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// showDialog(progress_bar_type);
progressDialog = ProgressDialog.show(testing_async.this, "",
"Loading...");
}
@Override
protected String doInBackground(String... f_url) {
/*
* LinearLayout layout = new LinearLayout(testing_async.this);
* layout = new LinearLayout(testing_async.this);
* layout.setLayoutParams(new ViewGroup.LayoutParams(
* ViewGroup.LayoutParams.FILL_PARENT,
* ViewGroup.LayoutParams.FILL_PARENT));
*
* RelativeLayout inner_layout = new
* RelativeLayout(testing_async.this); inner_layout = new
* RelativeLayout(testing_async.this); layout.setLayoutParams(new
* ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT,
* ViewGroup.LayoutParams.FILL_PARENT));
*
* ImageView im = new ImageView(testing_async.this);
* im.setImageResource(R.drawable.logo_background);
* RelativeLayout.LayoutParams layoutParams90 = new
* RelativeLayout.LayoutParams( 225, 250); layoutParams90.leftMargin
* = 45; layoutParams90.topMargin = 45;
* im.setLayoutParams(layoutParams90); inner_layout.addView(im);
* layout.addView(inner_layout);
*/
return null;
}
protected void onProgressUpdate(String... progress) {
}
@Override
protected void onPostExecute(String file_url) {
im.setBackgroundResource(R.drawable.back);
progressDialog.dismiss();
}
}
}
答案 0 :(得分:0)
Context mContext;
ImageView im;
public GetCategoryList(Context context, ImageView myIm) {
this.mContext = context;
this.im = myIml;
}
将上面的自定义构造函数添加到异步任务中。这样您就有了一个上下文和对imageView的引用。需要它才能获得资源。
其次,所有注释的代码都应放在&#34; onCreate&#34;。
最后,您可以使用
为imageView指定一个drawableim.setBackgroundResource(mContext.getResources().getDrawable(R.drawable.bBack));
希望这有帮助。
P.S。切勿在&#34; doInBackground&#34;中更改布局。你的应用程序会崩溃。
答案 1 :(得分:-2)
如果您正在设置图片
然后你必须给im.setBackgroundResource(R.drawable.bBack);
您在代码中设置了id而不是图像。