2013-04-05 35 views
1

頁腳視圖未在列表視圖的結束顯示。 普萊斯告訴我,我錯了.The代碼爲footerview是:頁腳視圖

footerView = ((LayoutInflater)getBaseContext() 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(
       R.layout.listfooter, null, false); 
     list.addFooterView(footerView); 

     footerView.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

      } 

     }); 

整個代碼:

public class CustomizedListView extends Activity { 
    // All static variables 
    static final String URL = "https://itunes.apple.com/us/rss/topalbums/limit=20/json"; 
    // XML node keys 
    static final String KEY_SONG = "song"; // parent node 
    static final String KEY_ID = "id"; 
    static final String KEY_TITLE = "title"; 
    static final String KEY_ARTIST = "artist"; 
    static final String KEY_DURATION = "duration"; 
    static final String KEY_THUMB_URL = "thumb_url"; 

    static ListView list; 
    static LazyAdapter adapter; 

    HashMap<String, String> map; 

    public static String message_receiver_str; 

    public static int deleteposition; 
    public static ArrayList<HashMap<String, String>> songsList; 

    View footerView ; 


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





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

     JSONObject json = JSONfunctions.getJSONfromURL(URL); 


     try { 
      JSONObject arr2 = json.getJSONObject("feed"); 
      JSONArray arr = arr2.getJSONArray("entry"); 

      for (int i = 0; i < arr.length(); i++) { 
       JSONObject e1 = arr.getJSONObject(i); 

       JSONArray arr3 = e1.getJSONArray("im:image"); 

       JSONObject arr8 = e1.getJSONObject("im:name"); 

       JSONObject arr10 = e1.getJSONObject("im:artist"); 

        JSONObject e12 = arr3.getJSONObject(0); 

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

      map.put(KEY_THUMB_URL, e12.getString("label")); 

      map.put(KEY_ARTIST, arr8.getString("label")); 
      map.put(KEY_TITLE, arr10.getString("label")); 
      // adding HashList to ArrayList 
      songsList.add(map); 
      } 

     } catch (JSONException e) { 
      // Log.e("log_tag", "Error parsing data "+e.toString()); 
      Toast.makeText(getBaseContext(), 
        "Network communication error!", 5).show(); 
     } 


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

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

     // Click event for single list row 
     list.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 

           @SuppressWarnings("unchecked") 
           HashMap<String, String> o= (HashMap<String, String>) list.getItemAtPosition(position); 

          // Toast.makeText(CustomizedListView.this, "ID '" + o.get("title") + "' was clicked.", Toast.LENGTH_SHORT).show(); 

           deleteposition=position; 
          message_receiver_str= o.get("title"); 
          Intent ii= new Intent(getBaseContext(),openedmsg.class); 
           startActivity(ii); 

      } 
     });  





     footerView = ((LayoutInflater)getBaseContext() 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(
       R.layout.listfooter, null, false); 
     list.addFooterView(footerView); 

     footerView.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

      } 

     }); 

    } 
} 

LazyAdapter.java

public class LazyAdapter extends BaseAdapter { 

    private Activity activity; 
    private ArrayList<HashMap<String, String>> data=new ArrayList<HashMap<String, String>>(); 
    private static LayoutInflater inflater=null; 
    public ImageLoader imageLoader; 


    public static HashMap<String, String> song; 

    public LazyAdapter(Activity a, ArrayList<HashMap<String, String>> d) { 
     activity = a; 
     data=d; 
     inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     imageLoader=new ImageLoader(activity.getApplicationContext()); 
    } 

    public int getCount() { 
     return data.size(); 
    } 

    public Object getItem(int position) { 
     return data.get(position); 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     View vi=convertView; 
     if(convertView==null) 
      vi = inflater.inflate(R.layout.list_row, null); 

     TextView title = (TextView)vi.findViewById(R.id.title); // title 
     TextView artist = (TextView)vi.findViewById(R.id.artist); // artist name 
     TextView duration = (TextView)vi.findViewById(R.id.duration); // duration 
     ImageView thumb_image=(ImageView)vi.findViewById(R.id.list_image); // thumb image 

     song = new HashMap<String, String>(); 
     song = data.get(position); 

     // Setting all values in listview 
     title.setText(song.get(CustomizedListView.KEY_TITLE)); 
     artist.setText(song.get(CustomizedListView.KEY_ARTIST)); 
     duration.setText(song.get(CustomizedListView.KEY_DURATION)); 
     imageLoader.DisplayImage(song.get(CustomizedListView.KEY_THUMB_URL), thumb_image); 
     return vi; 
    } 
} 

listfooter.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:gravity="center_horizontal" 
    android:padding="13dp" 
    android:layout_height="fill_parent">  

    <TextView 
     android:id="@id/android:empty" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:gravity="center" 
     android:padding="15dp" 
     android:text="Tap to Load" 
     android:textColor="@android:color/darker_gray"/> 

</LinearLayout> 

回答

12

您必須致電addFooterView(),然後ListView致電setAdapter()。同樣適用於addHeaderView()

+0

謝謝你,真棒。它工作。有一個美好的一天。 – 2013-04-05 20:37:18

+0

哇..浪費了4個小時..謝謝! – Rob 2014-12-01 15:28:54