2012-02-20 28 views
0

我有一個自定義Baseadapter Listview。此外,我設置了一個OnItemClickListener,儘管被稱爲,但它似乎是視圖的位置不正確。Android:OnItemClickListener錯誤的視圖位置

我想在點擊項目的位置顯示一個QuickAction,並且它沒有在正確的位置創建。 Quickaction(mBar)獲取視圖作爲參數,並在特定位置自行繪製。錯誤必須是我認爲的視圖的位置/佈局參數。

監聽器:

list.setOnItemClickListener(new OnItemClickListener() 
    { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View view, int position, final long selectedCourseid) 
     { 
      QuickActionBar mBar = new QuickActionBar(context); 
      mBar.addQuickAction(new QuickAction(context, R.drawable.ic_menu_mark, "choose")); 
      mBar.addQuickAction(new QuickAction(context, R.drawable.ic_menu_save, "details")); 

      mBar.setOnQuickActionClickListener(new OnQuickActionClickListener() 
      { 
       @Override 
       public void onQuickActionClicked(QuickActionWidget widget, int position) 
       { 

          .... 

       } 
      }); 

      mBar.show(view); 

     } 
    }); 

我如何能實現該視圖的位置PARAMS設置是否正確?

的方法巫婆會在延長Baseadapter查看:)

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

     ViewHolder holder; 

     cursor.moveToPosition(position); 

     if(convertView == null){ 
      convertView = mLayoutInflater.inflate(R.layout.test, null); 

      holder = new ViewHolder();     
      holder.test = (TextView) convertView.findViewById(R.id.test); 
      ... 


    } else { 
      holder = (ViewHolder) convertView.getTag(); 
    } 

     holder.test.setText("test"); 
      ... 


     return convertView; 
    } 

回答

0

在上述getView(方法,只需添加下面一行在else {...}聲明:

//This will update the position of the holder when the list updated. 
holder.position = position 

我不知道是否有人找到答案,但有人可能會去這裏,並試試這種情況。