私は、ユーザーがカラーピッカーやあらかじめ定義されたボタンを使って引用符の背景を変更できるアプリを持っています。私は、ユーザーが長いクリックで定義済みのボタンの色を変更し、カラーピッカーが表示され、ボタンに色を保存することを選択できるようにしたいと考えています。カラーピッカーはRecyclerViewアダプタから背景色を変更しませんか?
カラーピッカーのリスナーメソッドは、私のRecyclerView
アダプタで動作しません。カラーピッカーのリスナーは、私に現在選択されている色を与える必要があります。私はLog.d("TAG", ""+color);
でそれをテストしていると私は、背景色のいずれかの値
RecyclerViewのadapaterのViewholder取得いけない:ここで
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener, ColorPickerDialogFrag2.ColorPickerDialogListener {
public ImageButton colorButton;
public ViewHolder(View itemView) {
super(itemView);
this.colorButton = (ImageButton) itemView.findViewById(R.id.colorbutton);
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
}
@Override
public void onClick(View v) {
int position = getLayoutPosition();
MainActivity.relativeLayout.setBackgroundColor(Color.parseColor((mColorButtons.get(position).getColor())));
PreferenceManager.getDefaultSharedPreferences(App.getAppContext()).edit().putInt(App.BACKGROUND, Color.parseColor(mColorButtons.get(position).getColor())).apply();
//ColorPicker for customizing colors for buttons
@Override
public boolean onLongClick(View v) {
ColorPickerDialogFrag2 cp = ColorPickerDialogFrag2.newInstance(6, Color.YELLOW);
cp.setStyle(android.support.v4.app.DialogFragment.STYLE_NORMAL, R.style.AppTheme);
cp.show(fragmentManager,"d");
return false;
}
@Override
public void onPreviewColorChanged(int dialogId, int color) {
//color is the current color from the colorpicker
Log.d("TAG", ""+color);
MainActivity.mEditText.setBackgroundColor(color);
}
@Override
public void onColorSelected(int dialogId, int color) {
Log.d("TAG", ""+color);
MainActivity.mEditText.setBackgroundColor(color);
}
}
を、それが現在、私のアプリでどのように動作するかのビデオです: https://www.youtube.com/watch?v=lpYjKMLd9aU
私が使用してカラーピッカーlibrayはこれです:https://github.com/danielnilsson9/color-picker-view
あなたは 'ColorPickerDialogFrag2'を作成するために何を使用していますか?それは図書館かあなた自身のカスタムクラスですか? – Bryan
@ブライアンああ、その図書館。私は今それへのリンクでそれをmetionします。 – Muddz
'ColorPickerDialogFrag2'コードを投稿できますか? – Bryan