0

i have done with the json parser for fetching the website content, my first page displays couple of job listings in listview which should contain only id, date and author name, after clickling the singleitem list, i should fetch image and data content, i'm able to get content, but i dont know how to get images in the single item list. do anybody know how to do this?

public class AndroidJSONParsingActivity extends ListActivity {

// url to make request
private static String url = "http://www.mysite.com/jobs/?json=get_recent_posts";

// JSON Node names
private static final String TAG_POSTS = "posts";
private static final String TAG_ID = "id";
private static final String TAG_TITLE = "title";
private static final String TAG_DATE = "date";
private static final String TAG_CONTENT = "content";
private static final String TAG_AUTHOR = "author";
private static final String TAG_NAME = "name";



// contacts JSONArray
JSONArray posts = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Hashmap for ListView
    ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();

    // Creating JSON Parser instance
    JSONParser jParser = new JSONParser();

    // getting JSON string from URL
    JSONObject json = jParser.getJSONFromUrl(url);

    try {
        // Getting Array of Contacts
        posts = json.getJSONArray(TAG_POSTS);

        // looping through All Contacts
        for(int i = 0; i < posts.length(); i++){
            JSONObject c = posts.getJSONObject(i);

            // Storing each json item in variable
            String id = c.getString(TAG_ID);
            String title = c.getString(TAG_TITLE);
            String date = c.getString(TAG_DATE);
            String content = c.getString(TAG_CONTENT);

            // Phone number is agin  JSON Object
            JSONObject author = c.getJSONObject(TAG_AUTHOR);
            String name = author.getString(TAG_NAME);


            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();

            // adding each child node to HashMap key => value
            map.put(TAG_ID, id);
            map.put(TAG_TITLE, title);
            map.put( TAG_DATE, date);
            map.put( TAG_NAME, name);
            map.put( TAG_CONTENT, content);
            // adding HashList to ArrayList
            contactList.add(map);
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }


    /**
     * Updating parsed JSON data into ListView
     * */
    ListAdapter adapter = new SimpleAdapter(this, contactList,
            R.layout.list_item,
            new String[] { TAG_TITLE, TAG_DATE, TAG_NAME, TAG_CONTENT }, new int[] {
                    R.id.name, R.id.email,R.id.mobile,R.id.content});

    setListAdapter(adapter);

    // selecting single ListView item
    ListView lv = getListView();

    // Launching new screen on Selecting Single ListItem
    lv.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // getting values from selected ListItem
            String title = ((TextView) view.findViewById(R.id.name)).getText().toString();
            String date = ((TextView) view.findViewById(R.id.email)).getText().toString();
            String name = ((TextView) view.findViewById(R.id.mobile)).getText().toString();
            String content = ((TextView) view.findViewById(R.id.content)).getText().toString();

            // Starting new intent
            Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
            in.putExtra(TAG_TITLE, title);
            in.putExtra(TAG_DATE, date);
            in.putExtra(TAG_NAME, name);
            in.putExtra(TAG_CONTENT, content);
            startActivity(in);

        }
    });

code for singlemenu list

public class SingleMenuItemActivity extends Activity {

// JSON node keys
private static final String TAG_TITLE = "title";
private static final String TAG_DATE = "date";
private static final String TAG_NAME = "name";
private static final String TAG_CONTENT = "content";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.single_list_item);

    // getting intent data
    Intent in = getIntent();

    // Get JSON values from previous intent
    String title = in.getStringExtra(TAG_TITLE);
    String date = in.getStringExtra(TAG_DATE);
    String name = in.getStringExtra(TAG_NAME);
    String content = in.getStringExtra(TAG_CONTENT);

    // Displaying all values on the screen
    TextView lblName = (TextView) findViewById(R.id.name_label);
    TextView lblCost = (TextView) findViewById(R.id.email_label);
    TextView lblDesc = (TextView) findViewById(R.id.mobile_label);
    TextView lblCont = (TextView) findViewById(R.id.content_label);

    lblName.setText(title);
    lblCost.setText(date);
    lblDesc.setText(name);
    lblCont.setText(content);
}

}

  • Your image is link or base64 String? This question is very popular. You can search and there many results. [Example](http://stackoverflow.com/q/9350576/1050058) – Trung Nguyen Nov 28 '12 at 06:55

2 Answers2

0

There would be a web link for the image and you can download the web image from the following code.

public static Drawable LoadImageFromWebOperations(String url) {
  try {
    InputStream is = (InputStream) new URL(url).getContent();
    Drawable d = Drawable.createFromStream(is, "src name");
    return d;
} catch (Exception e) {
    return null;
 }
}
Ali Imran
  • 8,927
  • 3
  • 39
  • 50
  • i want to make those images to fix into listview along with the job descriptions, so how can i resize and fix the image in left corner of list tab? – user1796350 Nov 28 '12 at 10:21
0

Once you download the image , use createScaledBitmap (Bitmap src, int dstWidth, int dstHeight, boolean filter) or, for Android2.2 and up, use Bitmap extractThumbnail (Bitmap source, int width, int height) to create thumbnail of the image.

android.fryo
  • 1,469
  • 1
  • 14
  • 18