2016-10-15 6 views
0

選択を保存が、ユーザが別のアクティビティへの項目と意図を強調リサイクラーの項目にクリックし、とき今私は必要なときにバックリサイクラーショーへ選択されたアイテムはまだハイライト表示され、1つのアイテムのみが選択できますか?何か案が ?リサイクラーは、選択項目を表示し、私はこのリサイクラービューとその作業良いを持って

これは私のリサイクル・ビュー・アダプタ

public class ScreenRecyclerAdapter extends RecyclerView.Adapter<ScreenRecyclerAdapter.ViewHolder> { 
Context context; 
int image_list[]; 
public ScreenRecyclerAdapter(int[] image_list, Context context){ 
    super(); 
    this.image_list = image_list; 
    this.context = context;} 


@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.screen_items, parent, false); 
    ViewHolder viewHolder = new ViewHolder(v); 
    return viewHolder;} 
@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 
    Picasso.with(context).load(image_list[position]).into(holder.image_view_screen_item); 
    } 
@Override 
public int getItemCount() { 
    return image_list.length; 
} 

class ViewHolder extends RecyclerView.ViewHolder{ 
    ImageView image_view_screen_item; 
    public ViewHolder(View itemView) { 
     super(itemView); 
     image_view_screen_item = (ImageView) itemView.findViewById(R.id.image_view_screen_item); 
     image_view_screen_item.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(context, ImagePager.class); 
       context.startActivity(i); 
       image_view_screen_item.setSelected(true); 
      } 
     }); 
    }}} 

であり、これは、項目をクリックすると、その位置を保存し、他の活動に渡しリサイクル

public class ScreensActivity extends AppCompatActivity { 
RecyclerView image_recyclerView; 
RecyclerView.LayoutManager image_recyclerViewlayoutManager; 
RecyclerView.Adapter image_recyclerViewadapter; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_screens); 
    int image_list [] = {R.mipmap.ic_launcher,R.mipmap.ic_launcher, R.mipmap.ic_launcher}; 
    image_recyclerView = (RecyclerView) findViewById(R.id.image_recyclerView); 
    image_recyclerView.setHasFixedSize(true); 
    image_recyclerView.setSelected(true); 
    image_recyclerViewlayoutManager = new LinearLayoutManager(this); 
    image_recyclerView.setLayoutManager(image_recyclerViewlayoutManager); 
    image_recyclerViewadapter = new ScreenRecyclerAdapter(image_list, this); 
    image_recyclerView.setAdapter(image_recyclerViewadapter);} 
@Override 
public void onBackPressed() { 
}} 

答えて

0

のは、3つのサブ部分に疑問を分割してみましょう:hereで説明するように、タップ


1.ハイライトリサイクラービュー項目あなたは、複数の方法でrecycler-view item listenerを実装することができます。

@Override 
public void onItemClick(View view, int position) { 
    // check for item 
    Intent intent = new Intent(mContext); 
    startActivity(intent); 
    } 
:あなたは新しい活動などを開始することができonClickメソッド内でタップ

上の別のアクティビティに

@Override 
public void onItemClick(View view, int position) { 
    view.setBackgroundColor(Color.parseColor("#eee")); 
    // 
    } 

2.リダイレクト:あなたはそれを実装すると、同様にそこからview背景色を変更

3. Recycler-viewに戻ると、選択した項目がハイライトされて表示されます
public static var。アイテムをクリックするとactivityにそのアイテムIDが割り当てられます。static varに割り当てられます。onBindViewHolderは、リストアイテムIDがstatic varの場合は常にtrueとなり、パート1と同じようにviewの背景が変更されます。
新しいactivityを開始した後に現在のactivityを終了しないように注意してください。

+0

その作業ハイライトリサイクルビューの項目が、ステップ3私はそれを理解できない! – meladandroid

+0

ユーザが 'i​​tem'をタップすると' SharedPreferences'または静的変数内のアイテム 'id'を' getView() 'または' bindHindler() '内に保存し、itemIdが最後に選択したアイテムIDと同じで、背景色を
のように変更します。if(viewHolder.itemId == myItemId){view.backgroundColor(Color.parseColor( "#eee")); } ' – samirk433

0

の活動です。 元のアクティビティに戻ってから、保存された値を返し、onBindViewHolderメソッドでは、保存された値と等しい場合はアイテムを強調表示します。

+0

なるほど、あなたは、このためにコードを書くことができますか? – meladandroid

関連する問題