1. Download our Official Android App: Forums for Android!

Apps Display only one item in listview based on click count button not work

Discussion in 'Android Development' started by ahmedsa, Jun 12, 2016.

  1. ahmedsa

    ahmedsa Lurker
    Thread Starter
    Rank:
    None
    Points:
    15
    Posts:
    3
    Joined:
    Jun 7, 2016

    Jun 7, 2016
    3
    0
    15
    Male
    I have app inside it only one activity (main activity) and layout XML of main activity have only list view .this app get restaurants near from my location and display it in list view What i need to do is add button to the main activity layout when i press on button get to me list of restaurant item by item from json file and display it in list view but not display all restaurants in one click but show item by item every click get restaurant suppose i have 3 restaurant in json file when
    i click on button for first click get me first restaurant
    when i click on button for second click get me second restaurant
    when i click on button for third click get me third restaurant
    How to customize this code to accept get item by item restaurant from json file My code include class and activity and code is working success my class is FoursquareVenue

    package com.foodsmap_project_app.foodsmap_project_app;
    public class FoursquareVenue
    {
    private String name;
    private String city;

    private String category;

    public FoursquareVenue() {
    this.name = "";
    this.city = "";
    this.setCategory("");
    }

    public String getCity() {
    if (city.length() > 0) {
    return city;
    }
    return city;
    }

    public void setCity(String city) {
    if (city != null) {
    this.city = city.replaceAll("\\(", "").replaceAll("\\)", "");
    ;
    }
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public String getCategory() {
    return category;
    }

    public void setCategory(String category) {
    this.category = category;
    }

    }
    MainActivity.java

    public class MainActivity extends ListActivity {
    ArrayList<FoursquareVenue> venuesList;
    Button btn;
    int clickCount;


    List<String> shownResults = new ArrayList<String>();


    final String CLIENT_ID = "SVIBXYYXOEARXHDI4FWAHXGO5ZXOY204TCF1QJFXQLY5FPV4";
    final String CLIENT_SECRET = "BAAJO1KXRWESGTJJGVON4W3WUFHAQDAJPLRIYJJ5OPHFQ5VI";
    final String latitude = "30.435665153239377";
    final String longtitude = "31.3280148";
    ArrayAdapter <String> myAdapter;

    @override
    protected void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    new fourquare().execute();
    btn=(Button) findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener() {
    @override
    problem in bold lines under click button
    public void onClick(View v)
    {

    String name = venuesList.get(clickCount).getName();

    String cat = venuesList.get(clickCount).getCategory();

    String city = venuesList.get(clickCount).getCity();

    shownResults.add(name + "," + "cat" + "" + city);

    clickCount++;

    myAdapter.notifyDataSetChanged();
    new fourquare().execute();

    }
    });


    }
    private class fourquare extends AsyncTask<View, Void, String> {

    String temp;

    @override
    protected String doInBackground(View... urls) {


    temp = makeCall("https://api.foursquare.com/v2/venues/search?client_id=" + CLIENT_ID + "&client_secret=" + CLIENT_SECRET + "&v=20130815&ll=30.435665153239377,31.144435908398464" + "&query=resturant");


    return "";
    }

    @override
    protected void onPreExecute() {

    }

    @override
    protected void onPostExecute(String result) {
    if (temp == null) {

    } else {

    venuesList = (ArrayList<FoursquareVenue>) parseFoursquare(temp);

    List<String> listTitle = new ArrayList<String>();

    for (int i = 0; i < venuesList.size(); i++) {

    listTitle.add(i, venuesList.get(i).getName() + ", " + venuesList.get(i).getCategory() + "" + venuesList.get(i).getCity());
    }


    myAdapter = new ArrayAdapter<String>(MainActivity.this, R.layout.row_layout, R.id.listText, listTitle);
    setListAdapter(myAdapter);
    }
    }
    }
    public static String makeCall(String url) {


    StringBuffer buffer_string = new StringBuffer(url);
    String replyString = "";


    HttpClient httpclient = new DefaultHttpClient();

    HttpGet httpget = new HttpGet(buffer_string.toString());

    try {

    HttpResponse response = httpclient.execute(httpget);
    InputStream is = response.getEntity().getContent();


    BufferedInputStream bis = new BufferedInputStream(is);
    ByteArrayBuffer baf = new ByteArrayBuffer(20);
    int current = 0;
    while ((current = bis.read()) != -1) {
    baf.append((byte) current);
    }

    replyString = new String(baf.toByteArray());
    } catch (Exception e) {
    e.printStackTrace();
    }

    return replyString.trim();
    }
    private static ArrayList<FoursquareVenue> parseFoursquare(final String response) {

    ArrayList<FoursquareVenue> temp = new ArrayList<FoursquareVenue>();
    try {


    JSONObject jsonObject = new JSONObject(response);


    if (jsonObject.has("response")) {
    if (jsonObject.getJSONObject("response").has("venues")) {
    JSONArray jsonArray = jsonObject.getJSONObject("response").getJSONArray("venues");

    for (int i = 0; i < jsonArray.length(); i++) {
    FoursquareVenue poi = new FoursquareVenue();
    if (jsonArray.getJSONObject(i).has("name")) {
    poi.setName(jsonArray.getJSONObject(i).getString("name"));

    if (jsonArray.getJSONObject(i).has("location")) {
    if (jsonArray.getJSONObject(i).getJSONObject("location").has("address")) {
    if (jsonArray.getJSONObject(i).getJSONObject("location").has("city")) {
    poi.setCity(jsonArray.getJSONObject(i).getJSONObject("location").getString("city"));
    }
    if (jsonArray.getJSONObject(i).has("categories")) {
    if (jsonArray.getJSONObject(i).getJSONArray("categories").length() > 0) {
    if (jsonArray.getJSONObject(i).getJSONArray("categories").getJSONObject(0).has("icon")) {
    poi.setCategory(jsonArray.getJSONObject(i).getJSONArray("categories").getJSONObject(0).getString("name"));
    }
    }
    }
    temp.add(poi);
    }
    }
    }
    }
    }
    }

    } catch (Exception e) {
    e.printStackTrace();
    return new ArrayList<FoursquareVenue>();
    }
    return temp;

    }

    }
     

    Advertisement

  2. LV426

    LV426 I say we take off and nuke this place from orbit
    Moderator
    Rank:
     #11
    Points:
    1,988
    Posts:
    7,849
    Joined:
    Oct 16, 2015

    Oct 16, 2015
    7,849
    11,457
    1,988
    Male
    Software developer
    South West of England

Share This Page

Loading...