Hallo!
Aus einem mir nicht erklärlichen Grund, wird immer die
loadDefaultLightColorSet() Methode aufgerufen, unabhängig von meinem übergebenen Parameter.
Wieso?
Aus einem mir nicht erklärlichen Grund, wird immer die
loadDefaultLightColorSet() Methode aufgerufen, unabhängig von meinem übergebenen Parameter.
Wieso?
Java:
package com.ludevstudio.colorpicker;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Colorpicker picker =new Colorpicker(Colorpicker.Colorset.DEFAULT_ALL);
ColorpickerDialog dialog =new ColorpickerDialog(MainActivity.this, picker);
dialog.show();
Toast.makeText(MainActivity.this, picker.getColorCount()+"", Toast.LENGTH_SHORT).show();
}
});
}
}
Java:
package com.ludevstudio.colorpicker;
import android.graphics.Color;
import android.graphics.ColorSpace;
import android.widget.Switch;
import java.lang.reflect.Array;
import java.util.ArrayList;
public class Colorpicker {
private ArrayList<Integer> colors = new ArrayList<Integer>();
public Colorpicker() {
}
public Colorpicker(Colorpicker.Colorset colorset) {
switch (colorset) {
case DEFAULT_ALL: colors = loadDefaultColorSet();
case DEFAULT_DARK: colors = loadDefaultDarkColorSet();
case DEFAULT_LIGHT: colors = loadDefaultLightColorSet();
}
}
public void addColor(int c) {
this.colors.add(c);
}
public void removeColor(int c) {
this.colors.remove(c);
}
public int getColorCount() {
return this.colors.size();
}
public void replaceColor(int c, int i) {
colors.set(i, c);
}
public ArrayList<Integer> getColors() {
return colors;
}
private ArrayList<Integer> loadDefaultColorSet() {
ArrayList<Integer> set =new ArrayList<Integer>();
// set Standard Color values
set.add(Color.WHITE);
set.add(Color.YELLOW);
set.add(Color.GREEN);
set.add(Color.BLUE);
set.add(Color.RED);
set.add(Color.CYAN);
set.add(Color.MAGENTA);
set.add(Color.LTGRAY);
set.add(Color.DKGRAY);
set.add(Color.BLACK);
return set;
}
private ArrayList<Integer> loadDefaultDarkColorSet() {
ArrayList<Integer> set =new ArrayList<Integer>();
// set Default Color values
set.add(Color.GREEN);
set.add(Color.BLUE);
set.add(Color.RED);
set.add(Color.CYAN);
set.add(Color.MAGENTA);
set.add(Color.DKGRAY);
set.add(Color.BLACK);
return set;
}
private ArrayList<Integer> loadDefaultLightColorSet() {
ArrayList<Integer> set =new ArrayList<Integer>();
// set Default Color values
set.add(Color.WHITE);
set.add(Color.YELLOW);
set.add(Color.LTGRAY);
return set;
}
public enum Colorset {
DEFAULT_ALL,
DEFAULT_DARK,
DEFAULT_LIGHT
}
}
Java:
package com.ludevstudio.colorpicker;
import android.app.AlertDialog;
import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.GridView;
import java.util.ArrayList;
public class ColorpickerDialog extends AlertDialog {
Colorpicker picker;
public ColorpickerDialog(Context context, Colorpicker colorPicker) {
super(context);
this.picker = colorPicker;
init();
}
private void init() {
Adapter adapter =new Adapter(picker.getColors());
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.color_picker_dialog, null);
GridView grid = (GridView) v.findViewById(R.id.grid);
grid.setAdapter(adapter);
setView(v);
}
public class Adapter extends BaseAdapter {
ArrayList<Integer> colors;
ArrayList<Button> items;
public Adapter(ArrayList<Integer> colors) {
this.colors = colors;
}
@Override
public int getCount() {
return colors.size();
}
@Override
public Object getItem(int i) {
return colors.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public android.view.View getView(int i, android.view.View view, ViewGroup viewGroup) {
Button b =new Button(getContext());
b.setBackgroundColor(colors.get(i));
return b;
}
}
}