2013-05-31 36 views
0

我有自定義列表查看我預覽從服務器獲取的數據。 現在我想改變其itemclick列表視圖中的數據。我想要預覽的新數據也來自服務器。 這是我的BaseAdapter類更改自定義listView Android onclick的內容?

class MyCustomAdapter extends BaseAdapter { 

    Vector<String> data_text; 
     int[] data_image; 

    MyCustomAdapter() 
    { 
      data_text = null; 
      data_image = null; 
    } 

    MyCustomAdapter(Vector<String> text, int[] image) 
    { 
      data_text = text; 
      data_image = image; 
    } 

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

public String getItem(int position) 
{ 
     return null; 
} 

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

public void updateResults(Vector<String> results) { 
     data_text= results; 
     //Triggers the list update 
     notifyDataSetChanged(); 
    } 
public View getView(int position, View convertView, ViewGroup parent) 
{ 

      LayoutInflater inflater = getLayoutInflater(); 
      View row; 

      row = inflater.inflate(R.layout.category_list_element, parent, false); 

      TextView textview = (TextView) row.findViewById(R.id.TextView01); 
      ImageView imageview = (ImageView) row.findViewById(R.id.ImageView01); 

      textview.setText(data_text.get(position).toString()); 
      imageview.setImageResource(data_image[position]); 

      return (row); 
    }} 

請提供解決方案。

請注意我想在onview的列表視圖上預覽同一活動的數據。

,這是我的onclick L1是列表視圖

l1.setAdapter(new MyCustomAdapter(appCat, image)); 

l1.setOnItemClickListener(new OnItemClickListener() { 


    @Override 
    public void onItemClick(AdapterView<?> parent, View view,int position,long id) 
     { 
      View curr = parent.getChildAt((int) id); 
      TextView c = (TextView)curr.findViewById(R.id.TextView01); 
      String sel_item = c.getText().toString(); 
      API_GOD(URL); 


      }}); 

API_GOD(URL)是服務器端的數據是收到。 現在告訴我如何更新列表。

+0

API_GOD(URL)的郵政編碼;方法..您需要在完成API_GOD(URL)後調用notifydatasetchanged(); – NaserShaikh

回答

0

寫在側getView()

textview.setOnClickListener(new OnClickListener() { 

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

     }); 

還是做你的工作的OnClick

+0

嗨我已添加您的mwthod,但它不起作用 – Wishy

0

內你只需要該適配器設置爲您的視圖mCustomList.setAdapter(mMyCustomAdapter),然後點擊收聽:mCustomList.setOnItemClickListener(this);可以實現整個onclick參數或讓您的課程實現點擊監聽器implements OnItemClickListener onItemClickListener的優勢在於您將獲得一個位置: @Override public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) { }因此,您只能更新列表中的該項目,然後通知您的適配器。

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

     TextView c = (TextView) view.findViewById(R.id.TextView01); 
     String sel_item = c.getText().toString(); 
     API_GOD(URL); 


     }}); 
+0

我已添加我的onclicklistener代碼...請告訴我做了什麼更進一步。我不明白你在說什麼。 – Wishy

+0

添加onItemClickListener(而不是onClick),以便您可以獲取該位置,然後更新您的適配器中的陣列/列表和notifyDataChanged()。 –

+0

對不起,我的意思onItemClickListener()...我已經發布了上面的代碼在問題....請告訴我我做錯了什麼.... – Wishy