2015-02-07 188 views
-1

我有一個卡片視圖,每張卡片上都有一個按鈕。我試圖在用戶點擊按鈕時獲得持有按鈕的卡的位置。卡片視圖上的Android按鈕,點擊卡片視圖的位置

我有一個從RecyclerView.Adapter延伸,並實現以下的方法適配器...

public void onBindViewHolder(MovieImageViewHolder movieImageViewHolder, int i) { 
    Movie movieItem = mMovieList.get(i); 

    movieImageViewHolder.details.setTag(i); 
    movieImageViewHolder.details.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      position = (Integer) v.getTag(); 
     } 
    }); 
} 

這工作成功地,當我按卡上的1鍵,位置等於1,當我按下按鈕在卡4上,位置等於4.

問題是,如何將此值(位置)從適配器中取出並重新插入到活動中,以便我可以使用它?或者我甚至需要這樣做?我試圖創建一個新的意圖,但不認爲應該從適配器完成?

我試圖創建變量位置的吸氣劑,並呼籲與

public void buttonClick(View view) { 
    int position = adapter.getPosition(); 
    Log.d(TAG, "Button Clicked::- " + String.valueOf(position)); 
} 

主要按鈕操作使用

android:onClick="buttonClick" 

在XML,但點擊該按鈕時沒有任何反應,我相信這是因爲適配器中的O​​nClick方法被解僱了?

編輯:

好像我已經取得了一些進展。制定了,我可以設置標籤在適配器

movieImageViewHolder.btn_details.setTag(i); 

然後得到那個標籤回到我的onClick法.getTag();

現在唯一的事情是標籤似乎爲零的第一個元素,然後零爲第二個元素,然後開始在第三個......任何理由,這將是什麼?

+0

你得到'按鈕點擊:'在日誌? – 2015-02-07 06:25:36

+0

@ρяσѕρєяK不,因此我的評論,如果它只是從適配器調用而不是。 – 2015-02-07 06:26:56

+0

在哪個Button中添加'buttonClick'監聽器,以及何時想從適配器中獲取'position'? – 2015-02-07 06:27:28

回答

1

這其實很簡單,也是人們面對的一個非常普遍的「問題」。我確定了我無法從適配器創建活動的道路,事實上這正是我應該嘗試做的。

movieImageViewHolder.details.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(final View v) { 
      Integer taggedPosition = (Integer) v.getTag(); 
      Intent intent = new Intent(mContext, ViewMovieDetailsActivity.class); 
      intent.putExtra(SearchMovie.MOVIE_TRANSFER, getMovie(taggedPosition)); 
      v.getContext().startActivity(intent); 
     } 

    }); 

正確地開始正確的活動。