2013-01-11 23 views
5

Przegląd nieskończonego przewijania nie działa w widoku listy, element listy jest ładowany z usługi internetowej 10 elementów jest wyświetlanych. Listview powinien ładować się dynamicznie z serwisu internetowego, jak nieskończona lista stron w paginacji. Jestem nowy w Androidzie Czy ktoś może mi pomóc we właściwym kierunku? Poniższy kodLista nieskończonej listy odtwarzania w systemie Android nie działa

public class MainActivity extends ListActivity { 


    ListView list; 
    LazyAdapter adapter; 
    JSONArray posts; 

// All static variables 
static final String URL = "website"; 


static final String KEY_POSTS = "posts"; 
static final String KEY_ID = "id"; 
static final String KEY_TITLE = "title"; 
static final String KEY_DATE = "date"; 
static final String KEY_CONTENT = "content"; 
static final String KEY_AUTHOR = "author"; 
static final String KEY_NAME = "name"; 
static final String KEY_ATTACHMENTS = "attachments"; 
static final String KEY_SLUG = "slug"; 
static final String KEY_THUMB_URL = "thumbnail"; 
static final String KEY_IMAGES = "images"; 
static final String KEY_URL = "url"; 




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



    final Handler handler = new Handler(); 
    Runnable runable = new Runnable() { 

     @Override 
     public void run() { 

      //call the function 
      LoadData(); 
      //also call the same runnable 
      handler.postDelayed(this, 40000); 
     } 
    }; 
    handler.postDelayed(runable, 10); 

}public void LoadData(){ 

    ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>(); 


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

       // getting JSON string from URL 
       JSONObject json = jParser.getJSONFromUrl(URL); 
       try { 
        JSONArray posts = json.getJSONArray(KEY_POSTS); 

     // looping through all song nodes <song> 
       for(int i = 0; i < posts.length(); i++){ 
        JSONObject c = posts.getJSONObject(i); 
        // Storing each json item in variable 
        String id = c.getString(KEY_ID); 
        String title = c.getString(KEY_TITLE); 
        String date = c.getString(KEY_DATE); 
        String content = c.getString(KEY_CONTENT); 
        // to remove all <P> </p> and <br /> and replace with "" 
        content = content.replace("<br />", ""); 
        content = content.replace("<p>", ""); 
        content = content.replace("</p>", ""); 

        //authornumber is agin JSON Object 
        JSONObject author = c.getJSONObject(KEY_AUTHOR); 
        String name = author.getString(KEY_NAME); 

        String url = null; 
        String slug = null; 
        try { 
        JSONArray atta = c.getJSONArray("attachments"); 
        for(int j = 0; j < atta.length(); j++){ 
         JSONObject d = atta.getJSONObject(j); 

         slug = d.getString(KEY_SLUG); 

         JSONObject images = d.getJSONObject(KEY_IMAGES); 

         JSONObject thumbnail = images.getJSONObject(KEY_THUMB_URL); 
         url = thumbnail.getString(KEY_URL); 

        } 
        } catch (Exception e) { 
         e.printStackTrace(); 

        } 




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

      // adding each child node to HashMap key => value 
      map.put(KEY_ID, id); 
      map.put(KEY_TITLE, title); 
      map.put(KEY_DATE, date); 
      map.put(KEY_NAME, name); 
      map.put(KEY_CONTENT, content); 
      map.put(KEY_SLUG, slug); 
      map.put(KEY_URL, url); 


      // adding HashList to ArrayList 
      songsList.add(map); 
       } 
       }catch (JSONException e) { 
        e.printStackTrace(); 

        } 

     ListView list=(ListView)findViewById(android.R.id.list); 

     // Getting adapter by passing json data ArrayList 
     adapter=new LazyAdapter(this, songsList);   
     list.setAdapter(adapter); 



    // Launching new screen on Selecting Single ListItem 
    list.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.title)).getText().toString(); 
      String date = ((TextView) view.findViewById(R.id.date)).getText().toString(); 
      String name = ((TextView) view.findViewById(R.id.name)).getText().toString(); 
      String content = ((TextView) view.findViewById(R.id.content)).getText().toString(); 

      // Starting new intent 
      Intent in = new Intent(getApplicationContext(),SampleDesp.class); 
      in.putExtra(KEY_TITLE, title); 
      in.putExtra(KEY_DATE, date); 
      in.putExtra(KEY_NAME, name); 
      in.putExtra(KEY_CONTENT, content); 
      startActivity(in); 

     } 
    }); 


    list.setOnScrollListener(new OnScrollListener(){ 

     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, 
       int visibleItemCount, int totalItemCount) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onScrollStateChanged(AbsListView view, 
       int scrollState) { 
      // TODO Auto-generated method stub 

     } 

     }); 
} 
    } 

Odpowiedz

0

wasze metody load() zawsze zwraca false, to nigdy nie będzie wykonywał (new LoadNextPage()).execute("");

+0

mój problem jest podobny do http://stackoverflow.com/questions/10204698/endless-scrolling-for-listview więc zredagowałem swój kod, możesz to sprawdzić – theremin

Powiązane problemy