Ich habe eine App, wo der Benutzer eine Farbauswahl oder vordefinierte Schaltflächen verwenden kann, um den Hintergrund ihrer Anführungszeichen zu ändern. Ich möchte es möglich machen, dass der Benutzer die Farbe der vordefinierten Schaltflächen mit einem langen Klick ändern kann und dann erscheint ein Farbwähler und der Benutzer kann nun auswählen, eine beliebige Farbe auf der Schaltfläche zu speichern.Farbwähler ändert Hintergrundfarbe nicht vom RecyclerView Adapter?
Aus irgendeinem Grund funktionieren die Picker Listener Methoden nicht in meinem RecyclerView
Adapter. Der Color Picker Listener sollte mir die aktuell ausgewählte Farbe geben. Ich habe es mit einem Log.d("TAG", ""+color);
getestet und ich nicht alle Werte erhalten
Die Viewholder des RecyclerView adapater für Hintergrundfarben:
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);
}
}
Hier ist ein Video, wie es funktioniert zur Zeit in meiner App: https://www.youtube.com/watch?v=lpYjKMLd9aU
Der Color Picker libray ich verwende, ist dies: https://github.com/danielnilsson9/color-picker-view
Was verwenden Sie, um Ihre 'ColorPickerDialogFrag2' zu erstellen? Ist es eine Bibliothek oder Ihre eigene benutzerdefinierte Klasse? – Bryan
@Bryan oh es ist eine Bibliothek. Ich werde das jetzt mit einem Link dazu sehen. – Muddz
Können Sie Ihren 'ColorPickerDialogFrag2' Code posten? – Bryan