2011-08-03 85 views
2

我有一個ListView如何將查詢信息放入列表視圖中?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<ListView android:layout_height="wrap_content" android:id="@+id/listView1" android:layout_width="match_parent"> 
</ListView> 
</LinearLayout> 

我從一個URL飼料retreiving的信息的查詢。以下是我如何檢索Feed的示例。

  query.setOrderBy(YouTubeQuery.OrderBy.VIEW_COUNT); 
      query.setFullTextQuery("basketball"); 
      query.setSafeSearch(YouTubeQuery.SafeSearch.NONE); 
      VideoFeed videoFeed = service.query(query, VideoFeed.class); 
      printVideoFeed(videoFeed, true); 
     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (ServiceException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
} 

public void printVideoFeed(VideoFeed videoFeed, boolean detailed){ 
    videoFeed.getTitle().toString(); 
    } 
} 

正如你在這裏看到我retreive信息的飼料......現在,在這個方法我想將所有的信息裝入保持所有信息的列表。

例如帶有一行的ListView。 row.xml包含一個imageView和一個TextView。

我該如何去做,使每個飼料在列表視圖中設置一行?

編輯:我想要的是從搜索使用gdata API通過谷歌搜索視頻列表。這裏是我正在使用的代碼..

public void printVideoEntry(VideoEntry videoEntry, boolean detailed){ 
    if(detailed){ 

     YouTubeMediaGroup mediaGroup = videoEntry.getMediaGroup(); 

     System.out.println("Uploaded by: " + mediaGroup.getUploader()); 

     //Here i would like to set one of the thumbnails to a imageView. 
     mediaGroup.getThumbnails(); 

     System.out.println("Video ID: " + mediaGroup.getVideoId()); 
     System.out.println("Description: " + 
      mediaGroup.getDescription().getPlainTextContent()); 

     MediaPlayer mediaPlayer = mediaGroup.getPlayer(); 
     System.out.println("Web Player URL: " + mediaPlayer.getUrl()); 
     MediaKeywords keywords = mediaGroup.getKeywords(); 
     System.out.print("Keywords: "); 
     for(String keyword : keywords.getKeywords()) { 
      System.out.print(keyword + ","); 
     } 
    } 
} 

我想它有一個列表與每個視頻標題和它自己的imageView縮略圖列表。

回答

1

你要創建自己的適配器,它應該是這個樣子:

public class MyCustomAdapter extends ArrayAdapter<YourObject> { 

private final Context mContext; 
private final List<YourObject> objectList; 
private final int layout; 
private final LayoutInflater inflater; 

static class ViewHolder { 
    public ImageView objectImage; 
    public TextView objectTitle; 
} 

public MyCustomAdapter(Context context, int layout, List<YourObject> objects) { 
    super(context, layout, objects); 

    this.mContext = context; 
    this.inflater = LayoutInflater.from(context); 
    this.layout = layout; 
    this.objectList = objects; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder viewHolder; 

    if (convertView == null) { 
     convertView = inflater.inflate(layout, parent, false); 

     viewHolder = new ViewHolder(); 
     viewHolder.objectImage = (ImageView)convertView.findViewById(R.id.image_id); 
     viewHolder.objectTitle = (TextView)convertView.findViewById(R.id.title_id); 

     convertView.setTag(viewHolder); 
    } else { 
     viewHolder = (ViewHolder)convertView.getTag(); 
    } 


    viewHolder.objectImage.setImageDrawable(mContext.getResources().getDrawable(R.drawable.your_image)) 
    viewHolder.objectTitle.setText("Title Here"); 

    return convertView; 
} 

@Override 
public int getCount() { 
    return objectList.size(); 
} 
} 

並執行它,像這樣:

MyCustomAdapter adapter = new MyCustomAdapter(this, R.layout.your_layout, yourObjectArrayList); 
ListView list = (ListView)findViewById(R.id.your_list); 
list.setAdapter(adapter); 

希望這有助於!

相關問題