Imageview xml解析器错误
问题描述:
嗨我已经在android应用程序中开发了一个xml解析器。这里的xml在listview(产品列表)中成功解析。现在我已经实现了这个活动,意图是另一个活动。Imageview xml解析器错误
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view,
int position, long id) {
String Name = ((TextView) view.findViewById(R.id.title)).getText().toString();
String Category = ((TextView) view.findViewById(R.id.artist)).getText().toString();
String Price = ((TextView) view.findViewById(R.id.duration)).getText().toString();
String Image=((ImageView)view.findViewById(R.id.list_image)).getImageMatrix().toString();
// Starting new intent
Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
in.putExtra(KEY_TITLE, Name);
in.putExtra(KEY_ARTIST, Category);
in.putExtra(KEY_THUMB_URL, Image);
in.putExtra(KEY_DURATION, Price);
startActivity(in);
下一个活动的目的是用户点击了那个时代的下一个活动都显示特定产品的信息产品列表中选择一个特定的产品。
的nextactivity是SingleMenuLietItem.java源代码是
package com.example.truebranches;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Matrix;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
public class SingleMenuItemActivity extends Activity {
// XML node keys
static final String KEY_TITLE = "Name";
static final String KEY_ARTIST = "Category";
static final String KEY_THUMB_URL = "Image";
static final String KEY_DURATION = "Price";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.single_list_item);
// getting intent data
Intent in = getIntent();
// Get XML values from previous intent
String Name = in.getStringExtra(KEY_TITLE);
String ProductURL = in.getStringExtra(KEY_ARTIST);
String Image = in.getStringExtra(KEY_THUMB_URL);
String Price = in.getStringExtra(KEY_DURATION);
// Displaying all values on the screen
TextView lblName = (TextView) findViewById(R.id.name_label);
TextView lblProductURL = (TextView) findViewById(R.id.producturl_label);
ImageView lblImage = (ImageView) findViewById(R.id.image_label);
TextView lblCost = (TextView) findViewById(R.id.price_label);
lblName.setText(Name);
lblProductURL.setText(ProductURL);
lblImage.setImageResource(Image);
lblCost.setText(Price);
}
}
这里下一个活动有details..but ..because我在这个部分我在努力不显示图像显示TextView的产品...所以哪一行我必须改变图像将显示在下一个activity.here
lblImage.setImageResourse(Image)dis line有错误ImageView类型中的方法setImageResource(int)不适用于参数(字符串)。 ..如何清除。请帮帮我。
答
你不能像设置列表项目图像一样设置图像吗?
我认为这是不工作,因为这样:
String Image=((ImageView)view.findViewById(R.id.list_image)).getImageMatrix().toString();
UPDATE: 使用这种方法来下载图片:
public void downloadImage(String url, String pictureName) {
final HttpClient client = new DefaultHttpClient();
final HttpGet getRequest = new HttpGet(url);
String packageName = Environment.getExternalStorageDirectory() + "/"
+ getString(R.string.app_name);
folder = new File(packageName);
folder.mkdirs();
File f = new File(folder, pictureName);
try {
HttpResponse response = client.execute(getRequest);
final int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w("ImageDownloader", "Error " + statusCode +
" while retrieving bitmap from " + url);
}
final HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inputStream = null;
try {
inputStream = entity.getContent();
// Bug on slow connections, fixed in future release.
Bitmap bm = BitmapFactory.decodeStream(new FlushedInputStream(inputStream));
try {
FileOutputStream out = new FileOutputStream(f.getAbsolutePath());
bm.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
}
bm.recycle();
} finally {
if (inputStream != null) {
inputStream.close();
}
entity.consumeContent();
}
}
} catch (IOException e) {
getRequest.abort();
Log.w("ImageDownload", "I/O error while retrieving bitmap from " + url, e);
} catch (IllegalStateException e) {
getRequest.abort();
Log.w("ImageDownload", "Incorrect URL: " + url);
} catch (Exception e) {
getRequest.abort();
Log.w("ImageDownload", "Error while retrieving bitmap from " + url, e);
} finally {
}
}
,并在您SingleMenuItemActivity:
String packageName = Environment.getExternalStorageDirectory() + "/"
+ getString(R.string.app_name);
folder = new File(packageName);
folder.mkdirs();
File f = new File(folder, pictureName);
Bitmap bitmap = null;
if (f.isFile())
try {
bitmap = BitmapFactory.decodeStream(f.toURL().openStream());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (bitmap != null)
lblImage.setImageBitmap(bitmap);
我不知道dis方法...所以请给我解决方案..怎么办 – hariprasad
哪里是th您想要在SingleMenuItemActivity中设置的图像?它在可绘制文件夹中,或者你必须从链接下载它? –
从链接下载 – hariprasad