2013-01-16 40 views
1

我对android开发相当陌生,想在片段中使用Android-Color_picker“AmbilWarna”。我得到的错误:在片段中使用android-color-picker?

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

这是因为我使用的片段,而不是一个片段活动我使用本教程使用一个活动。

我使用下面的教程: 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(); 
} 

回答

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。它将随着上下文返回。

+0

我这样做,但得到这个错误: 构造AmbilWarnaDialog(FragmentActivity,INT,新OnAmbilWarnaListener(){})是未定义 –

+0

好了,等一下,我会找到解决办法 –

+0

@BenFossen看我的编辑,尝试getActivity()。getApplicationContext() –