I have been able to pull string data from Parse and set it into textviews but I am unable to get an image file and set it in a imageview, I tried using the Byte method but have not been successful and get an error on data.length. heres my code:
public class mygardenDetail extends Activity {
String name;
//String image;
String kgsays;
String care;
String tips;
String image;
Context context;
ImageLoader imageLoader = new ImageLoader(this);
List<ParseObject> ob;
private List<PlantListitems> plantlist = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from singleitemview.xml
setContentView(R.layout.mygarden_detail);
//new mygardenDetail.RemoteDataTask().execute();
imageLoader = new ImageLoader(context);
Intent i = getIntent();
// Get the result of rank
name = i.getStringExtra("name");
//Get the result of country
// kgsays = i.getStringExtra("kgsays");
// Get the result of country
//care = i.getStringExtra("care");
// Get the result of population
//tips = i.getStringExtra("tips");
// Get the result of flag
// image = i.getStringExtra("image");
// Locate the TextViews in singleitemview.xml
TextView txtName = (TextView) findViewById(R.id.name);
final TextView txtKGsays = (TextView) findViewById(R.id.KGsays);
final TextView txtCare = (TextView) findViewById(R.id.Care);
final TextView txtTips = (TextView) findViewById(R.id.Tips);
// Locate the ImageView in singleitemview.xml
final ImageView imgflag = (ImageView) findViewById(R.id.image);
//Set values in containers
txtName.setText(name);
imageLoader.DisplayImage(image, imgflag);
ParseQuery query = new ParseQuery<>("Plants2");
query.whereEqualTo("plantName", (name));
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> listCountry, ParseException e) {
for (ParseObject country : listCountry) {
// Locate images in flag column
ParseFile image = (ParseFile) country.get("image");
//PlantListitems map = new PlantListitems();
txtKGsays.setText((String) country.get("KGsays"));
txtCare.setText((String) country.get("Care"));
txtTips.setText((String) country.get("tips"));
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
imgflag.setImageBitmap(bmp);
//plantlist.add(map);
//imageLoader.DisplayImage(image, imgflag);
}
}
});
}
}
Code used to display in a list view via intent:
// RemoteDataTask AsyncTask
private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
// Create the array
worldpopulationlist = new ArrayList<WorldPopulation>();
try {
// Locate the class table named "Country" in Parse.com
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
"Plants2");
// Locate the column named "ranknum" in Parse.com and order list
// by ascending
query.orderByAscending("plantName");
ob = query.find();
for (ParseObject country : ob) {
// Locate images in flag column
ParseFile image = (ParseFile) country.get("image");
WorldPopulation map = new WorldPopulation();
map.setName((String) country.get("plantName"));
map.setType((String) country.get("type"));
map.setPlot((String) country.get("plotSize"));
map.setImage(image.getUrl());
worldpopulationlist.add(map);
}
} catch (ParseException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
This source code seems to work to load an image from a file:
The Bitmap and BitmapFactory classes are located in the android.graphics package:
Assuming that your path to the image is correct, you can then add this bitmap image to an ImageView like this:
credits - http://alvinalexander.com/source-code/android/android-how-load-image-file-and-set-imageview