1

私はアンドロイド開発にかなり慣れていないので、フラグメント内で Android-Color_picker "AmbilWarna" を使用したいと考えています。エラーが発生しています:

The constructor AmbilWarnaDialog(HomeFragment, int, new OnAmbilWarnaListener(){}) is undefined.

これは Fragment アクティビティではなく Fragment を使用しているためでしょうか。使用していたチュートリアルでは Activity を使用しています。

次のチュートリアルを使用しています: http://wptrafficanalyzer.in/blog/android-color-picker-application-using-ambilwarna-color-picker-library/

public class HomeFragment extends SherlockFragment implements TabListener {


private View homeView;

@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
        Bundle savedInstanceState) {

    homeView = inflater.inflate(R.layout.homefragment, container, false);

    Button sColorBtn = (Button) homeView.findViewById(R.id.button2);
    OnClickListener clickListener = new OnClickListener() {

        @Override
        public void onClick(View v) {
            colorpicker();
        }
    };

    // Setting click event listener for the button
    sColorBtn.setOnClickListener(clickListener);
    return sColorBtn;
}

public void colorpicker() {
    //     initialColor is the initially-selected color to be shown in the rectangle on the left of the arrow.
    //     for example, 0xff000000 is black, 0xff0000ff is blue. Please be aware of the initial 0xff which is the alpha.

    AmbilWarnaDialog dialog = new AmbilWarnaDialog(this, 0xff0000ff, new OnAmbilWarnaListener() {

        // Executes, when user click Cancel button
        @Override
        public void onCancel(AmbilWarnaDialog dialog){
        }

        // Executes, when user click OK button
        @Override
        public void onOk(AmbilWarnaDialog dialog, int color) {
            Toast.makeText(getBaseContext(), "Selected Color : " + color, Toast.LENGTH_LONG).show();
        }
    });
    dialog.show();
}
4

2 に答える 2

2

これを使って:

AmbilWarnaDialog dialog = new AmbilWarnaDialog(getActivity().getApplicationContext(), 0xff0000ff, new OnAmbilWarnaListener() {

    // Executes, when user click Cancel button
    @Override
    public void onCancel(AmbilWarnaDialog dialog){
    }

    // Executes, when user click OK button
    @Override
    public void onOk(AmbilWarnaDialog dialog, int color) {
        Toast.makeText(getBaseContext(), "Selected Color : " + color, Toast.LENGTH_LONG).show();
    }
});

したがって、getActivity().getApplicationContext()の代わりにを使用する必要がありthisます。コンテキストとともに返されます。

于 2013-01-16T21:36:47.373 に答える
0

Color Picker のフラグメント ソリューションが必要な場合は、DialogFragment が使用され、構成変更時に再作成される android-color-picker のフォークを作成ましたリンクは次のとおりです: https://github.com/lomza/android-color-picker

于 2013-09-30T16:10:52.683 に答える