2013-02-20 66 views
0

我用這個tutorial來學習如何設置我自己的適配器並用自定義行填充listView。通過自定義適配器在列表視圖的每一行中加載不同圖像

現在即時嘗試使用適配器在每一行中獲取不同的圖像(image1,image2等)。 任何人都可以提供給我一個提示,我必須實現獲取圖像!?從main.java

片段:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_menu); 
    m_orders = new ArrayList<Order>(); 
    int r = 0; 
    this.m_adapter = new OrderAdapter(this, R.layout.row, m_orders); 
    setListAdapter(this.m_adapter); 
    viewOrders = new Runnable(){ 
     @Override 
     public void run() { 
      getOrders(); 
     } 
    }; 
    Thread thread = new Thread(null, viewOrders, "MagentoBackground"); 
    thread.start();  
    private Runnable returnRes = new Runnable() { 

    @Override 
    public void run() { 
     if(m_orders != null && m_orders.size() > 0){ 
      m_adapter.notifyDataSetChanged(); 
      for(int i=0;i<m_orders.size();i++) 
      m_adapter.add(m_orders.get(i)); 
     } 
     m_ProgressDialog.dismiss(); 
     m_adapter.notifyDataSetChanged(); 
    } 
}; 
private void getOrders(){ 
     try{ 
      m_orders = new ArrayList<Order>(); 
      Order o1 = new Order(); 
      o1.setOrderName("SF services"); 
      Order o2 = new Order(); 
      o2.setOrderName("SF Advertisement"); 
      m_orders.add(o1); 
      m_orders.add(o2); 
      Thread.sleep(2000); 
      Log.i("ARRAY", ""+ m_orders.size()); 
     } catch (Exception e) { 
      Log.e("BACKGROUND_PROC", e.getMessage()); 
     } 
     runOnUiThread(returnRes); 
    } 


private class OrderAdapter extends ArrayAdapter<Order> { 

    private ArrayList<Order> items; 

    public OrderAdapter(Context context, int textViewResourceId, ArrayList<Order> items) { 
      super(context, textViewResourceId, items); 
      this.items = items; 
    } 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      if (v == null) { 
       LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.row, null); 
      } 
      Order o = items.get(position); 
      if (o != null) { 
        TextView tt = (TextView) v.findViewById(R.id.toptext); 
        if (tt != null) { 
          tt.setText("Name: "+o.getOrderName());       } 
      } 
      return v; 
    } 

和row.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
android:padding="6dip"> 
<ImageView 
    android:id="@+id/icon" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_marginRight="6dip" /> 
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="0dip" 
    android:layout_weight="1" 
    android:layout_height="fill_parent"> 
    <TextView 
     android:id="@+id/toptext" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:gravity="center_vertical" 
    /> 
</LinearLayout> 

Thx提前。我認爲它不難找到答案。但我是一個新秀,結果迷失了一下:(

回答

0

我假設你是問有關在網絡中加載圖片。

Get them in 

    @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      ... 
     } 

使用圖像的延遲加載延遲加載的更多信息...只是谷歌它...

+0

lazy-list看起來很整齊,但是我想要實現的是一步。我只是想教我的適配器如何從資源文件夾中繪製不同的.png。裏面的getView,但LayoutInflater混淆了我到目前爲止:/ – bofredo 2013-02-20 13:38:22

+0

嗨嘗試本教程...如果你無法理解它......不介意問我..我會在那裏爲你.... http ://www.javasr ilankansupport.com/2012/05/android-listview-example-with-image-and.html – Pragnani 2013-02-20 15:11:39

+1

感謝您的幫助!我公司的android開發人員明天會回來,所以我可以問他如何優化我的代碼。它現在正在運行,但我不認爲它應該是/應該是;) – bofredo 2013-02-20 16:06:27

相關問題