I parsed all the textviews and and image in a list view but when i am trying to click on a single list view it does show textview but doesn't show Image view bdw i dont know how to get it.
MainActivity.java`
public class MainActivity extends Activity {
static ArrayList<Actors> actorsList;
ActorAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actorsList = new ArrayList<Actors>();
//final ArrayList<Actors> movieList = new ArrayList<Actors>();
new JSONAsyncTask().execute("http://microblogging.wingnity.com/JSONParsingTutorial/jsonActors");
ListView listview = (ListView)findViewById(R.id.list);
adapter = new ActorAdapter(getApplicationContext(), R.layout.row, actorsList);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long id) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), actorsList.get(position).getName(), Toast.LENGTH_LONG).show();
Actors m = actorsList.get(position);
Intent i = new Intent(MainActivity.this, SingleView.class);
i.putExtra("position", String.valueOf(position));
i.putExtra("thumb", m.getImage());
i.putExtra("name", m.getName());
i.putExtra("dob", m.getDob());
i.putExtra("height", m.getHeight());
i.putExtra("country", m.getCountry());
// View imageView = null;
//imageView.buildDrawingCache();
// Bitmap image= imageView.getDrawingCache();
// Bundle extras = new Bundle();
// extras.putParcelable("imagebitmap", image);
// i.putExtras(extras);
startActivity(i);
}
});
}
class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {
ProgressDialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = new ProgressDialog(MainActivity.this);
dialog.setMessage("Loading, please wait");
dialog.setTitle("Connecting server");
dialog.show();
dialog.setCancelable(false);
}
@Override
protected Boolean doInBackground(String... urls) {
try {
//------------------>>
HttpGet httppost = new HttpGet(urls[0]);
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httppost);
// StatusLine stat = response.getStatusLine();
int status = response.getStatusLine().getStatusCode();
if (status == 200) {
HttpEntity entity = response.getEntity();
String data = EntityUtils.toString(entity);
JSONObject jsono = new JSONObject(data);
JSONArray jarray = jsono.getJSONArray("actors");
for (int i = 0; i < jarray.length(); i++) {
JSONObject object = jarray.getJSONObject(i);
Actors actor = new Actors();
actor.setName(object.getString("name"));
actor.setDescription(object.getString("description"));
actor.setDob(object.getString("dob"));
actor.setCountry(object.getString("country"));
actor.setHeight(object.getString("height"));
actor.setSpouse(object.getString("spouse"));
actor.setChildren(object.getString("children"));
actor.setImage(object.getString("image"));
actorsList.add(actor);
}
return true;
}
//------------------>>
} catch (ParseException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
protected void onPostExecute(Boolean result) {
dialog.cancel();
adapter.notifyDataSetChanged();
if(result == false)
Toast.makeText(getApplicationContext(), "Unable to fetch data from server", Toast.LENGTH_LONG).show();
}
}
ActorAdapter.java
public class ActorAdapter extends ArrayAdapter<Actors> {
ArrayList<Actors> actorList;
LayoutInflater vi;
int Resource;
ViewHolder holder;
private static ActorAdapter mInstance;
public void onCreate() {
mInstance = this;
}
public ActorAdapter(Context context, int resource, ArrayList<Actors> objects) {
super(context, resource, objects);
vi = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Resource = resource;
actorList = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// convert view = design
View v = convertView;
if (v == null) {
holder = new ViewHolder();
v = vi.inflate(Resource, null);
holder.imageview = (ImageView) v.findViewById(R.id.ivImage);
holder.tvName = (TextView) v.findViewById(R.id.tvName);
holder.tvDescription = (TextView) v.findViewById(R.id.tvDescriptionn);
holder.tvDOB = (TextView) v.findViewById(R.id.tvDateOfBirth);
holder.tvCountry = (TextView) v.findViewById(R.id.tvCountry);
holder.tvHeight = (TextView) v.findViewById(R.id.tvHeight);
holder.tvSpouse = (TextView) v.findViewById(R.id.tvSpouse);
holder.tvChildren = (TextView) v.findViewById(R.id.tvChildren);
v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
holder.imageview.setImageResource(R.drawable.ic_launcher);
new DownloadImageTask(holder.imageview).execute(actorList.get(position).getImage());
holder.tvName.setText(actorList.get(position).getName());
holder.tvDescription.setText(actorList.get(position).getDescription());
holder.tvDOB.setText("B'day: " + actorList.get(position).getDob());
holder.tvCountry.setText(actorList.get(position).getCountry());
holder.tvHeight.setText("Height: " + actorList.get(position).getHeight());
holder.tvSpouse.setText("Spouse: " + actorList.get(position).getSpouse());
holder.tvChildren.setText("Children: " + actorList.get(position).getChildren());
return v;
}
static class ViewHolder {
public ImageView imageview;
public TextView tvName;
public TextView tvDescription;
public TextView tvDOB;
public TextView tvCountry;
public TextView tvHeight;
public TextView tvSpouse;
public TextView tvChildren;
}
class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
public static ActorAdapter getInstance() {
// TODO Auto-generated method stub
return mInstance;
}
SingleView.Java
public class SingleView extends Activity{
TextView name,dob,height,country;
Button back,prev,nxt;
ImageView img ;
//imageLoader = ActorAdapter.getInstance().getImage();
private ArrayList<Actors> movieList_detail = new ArrayList<Actors>();
int selected = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.singleview);
Intent i = getIntent();
final String image1 = i.getStringExtra("thumb");
String name1 = i.getStringExtra("name");
String dob1 = i.getStringExtra("dob");
String height1 = i.getStringExtra("height");
String country1 = i.getStringExtra("country");
img = (ImageView)findViewById(R.id.ivImage);
name = (TextView)findViewById(R.id.tvName);
dob = (TextView)findViewById(R.id.tvDateOfBirth);
height = (TextView)findViewById(R.id.tvHeight);
country = (TextView)findViewById(R.id.tvCountry);
back = (Button)findViewById(R.id.button1);
prev = (Button)findViewById(R.id.button2);
nxt = (Button)findViewById(R.id.button3);
movieList_detail = MainActivity.actorsList;
name.setText(name1);
dob.setText(dob1);
height.setText(height1);
country.setText(country1);
back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
prev.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(selected>0){
selected--;
Actors m = movieList_detail.get(selected);
//String image = m.getThumbnailUrl();
name.setText(m.getName());
dob.setText(m.getDob());
height.setText(m.getHeight());
country.setText(m.getCountry());
// img.DisplayImage(m.getImage(), image1);
nxt.setVisibility(View.VISIBLE);
}else
{
prev.setVisibility(View.GONE);
}
}
});
nxt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(selected<5){
selected++;
Actors m = movieList_detail.get(selected);
//String image = m.getThumbnailUrl();
name.setText(m.getName());
dob.setText(m.getDob());
height.setText(m.getHeight());
country.setText(m.getCountry());
// imageLoader.DisplayImage(m.getImage(), img);
prev.setVisibility(View.VISIBLE);
}else
{
nxt.setVisibility(View.GONE);
}
}
});
}
}
Actors.java
public class Actors {
private String name;
private String description;
private String dob;
private String country;
private String height;
private String spouse;
private String children;
private String image;
public Actors() {
// TODO Auto-generated constructor stub
}
public Actors(String name, String description, String dob, String country,
String height, String spouse, String children, String image) {
super();
this.name = name;
this.description = description;
this.dob = dob;
this.country = country;
this.height = height;
this.spouse = spouse;
this.children = children;
this.image = image;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getHeight() {
return height;
}
public void setHeight(String height) {
this.height = height;
}
public String getSpouse() {
return spouse;
}
public void setSpouse(String spouse) {
this.spouse = spouse;
}
public String getChildren() {
return children;
}
public void setChildren(String children) {
this.children = children;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
Try this
public class SingleView extends Activity{
TextView name,dob,height,country;
Button back,prev,nxt;
ImageView img ;
//imageLoader = ActorAdapter.getInstance().getImage();
private ArrayList<Actors> movieList_detail = new ArrayList<Actors>();
int selected = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.singleview);
Intent i = getIntent();
final String image1 = i.getStringExtra("thumb");
String name1 = i.getStringExtra("name");
String dob1 = i.getStringExtra("dob");
String height1 = i.getStringExtra("height");
String country1 = i.getStringExtra("country");
img = (ImageView)findViewById(R.id.ivImage);
name = (TextView)findViewById(R.id.tvName);
dob = (TextView)findViewById(R.id.tvDateOfBirth);
height = (TextView)findViewById(R.id.tvHeight);
country = (TextView)findViewById(R.id.tvCountry);
back = (Button)findViewById(R.id.button1);
prev = (Button)findViewById(R.id.button2);
nxt = (Button)findViewById(R.id.button3);
movieList_detail = MainActivity.actorsList;
name.setText(name1);
dob.setText(dob1);
height.setText(height1);
country.setText(country1);
new DownloadImageTask(img).execute(image1);
back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
prev.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(selected>0){
selected--;
Actors m = movieList_detail.get(selected);
//String image = m.getThumbnailUrl();
name.setText(m.getName());
dob.setText(m.getDob());
height.setText(m.getHeight());
country.setText(m.getCountry());
// img.DisplayImage(m.getImage(), image1);
nxt.setVisibility(View.VISIBLE);
}else
{
prev.setVisibility(View.GONE);
}
}
});
nxt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(selected<5){
selected++;
Actors m = movieList_detail.get(selected);
//String image = m.getThumbnailUrl();
name.setText(m.getName());
dob.setText(m.getDob());
height.setText(m.getHeight());
country.setText(m.getCountry());
// imageLoader.DisplayImage(m.getImage(), img);
prev.setVisibility(View.VISIBLE);
}else
{
nxt.setVisibility(View.GONE);
}
}
});
}