2013-05-22 19 views
3

我的Android項目存在問題,因爲我無法從列表中使用我自己的ArrayAdapter獲取選定的項目索引。我已經嘗試了幾個來自教程的例子,但他們不工作。解決辦法是什麼?無法在我的ListView中的自定義ArrayAdapter中獲取選定的項目索引

適配器

public class myProductAdapter extends ArrayAdapter<myProductsGroup> { 

    private List<myProductsGroup> productList; 
    private Context context; 

    public myProductAdapter(List<myProductsGroup> productList, Context ctx) { 
     super(ctx, R.layout.list_products_row, productList); 
     this.productList = productList; 
     this.context = ctx; 
    } 

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

    /* 
    public void onClick(View v) { 
     int position = Integer.parseInt((String) v.getTag()); 

     OrderFirstGridPage.setSelectedItem(position);    
    } 
    */ 

    public View getView(int position, View convertView, ViewGroup parent) { 

     if (convertView == null) { 
      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = inflater.inflate(R.layout.list_products_row, parent, false); 
     } 
      TextView tv = (TextView) convertView.findViewById(R.id.title); 
      tv.setTag(""+position); 
      TextView distView = (TextView) convertView.findViewById(R.id.description); 
      distView.setTag(""+position); 
      tv.setText("aa"); 
     return convertView; 
    } 
} 

在活動

lv = (ListView) findViewById(R.id.listView1); 
lv.setAdapter(new myProductAdapter(setupArrayProductList((ArrayList<myProduct>) ProductList), OrderFirstGridPage.this)); 
lv.setSelector(R.drawable.selector_for_position_list); 
+0

試試這個http://www.androidhub4you.com/2013/02/muftitouch-listview-multi-click.html – Nirmal

+0

它有幫助,但是當我在Adapter中實現onClick時,我的列表不能爲我選擇的項目加下劃線;我決定嘗試另一種方式,Sharifur Ra​​hman示例正常工作。不管怎樣,謝謝! – boski

回答

6

嘗試使用此行代碼:

lv = (ListView) findViewById(R.id.listView1); 
    lv.setAdapter(new myProductAdapter(setupArrayProductList((ArrayList<myProduct>) ProductList), OrderFirstGridPage.this)); 
    lv.setSelector(R.drawable.selector_for_position_list);  

lv.setOnItemClickListener(new OnItemClickListener() { 

              @Override 
              public void onItemClick(AdapterView<?> parent, 
                View view, int position, long id) { 
               Log.d("My POSITION",""+position); 

              } 
             }); 

希望你能得到從選擇列表視圖中的確切位置。如果您有任何問題,請通知我。希望這會起作用。

+0

是的。它工作正常。我會盡快接受。 – boski

相關問題