构造函数AlertDialog.Builder(LayoutOne,int)未定义

时间:2012-06-17 07:51:02

标签: android alertdialog

我是编程的新手,我在使用AlertDialog时遇到了一些困难。我显示了六个按钮,我想在单击第六个按钮时添加警告对话框。但我得到一个错误说“构造函数AlertDialog.Builder(LayoutOne,int)未定义”。任何人都可以帮助我吗?

谢谢!

public class LayoutOne extends Fragment implements OnClickListener {

    public static Fragment newInstance(Context context) {
        LayoutOne f = new LayoutOne();

    return f;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    ViewGroup root = (ViewGroup) inflater
            .inflate(R.layout.layout_one, null);
    ((Button) root.findViewById(R.id.drink)).setOnClickListener(this);
    ((Button) root.findViewById(R.id.sleep)).setOnClickListener(this);
    ((Button) root.findViewById(R.id.food)).setOnClickListener(this);
    ((Button) root.findViewById(R.id.events)).setOnClickListener(this);
    ((Button) root.findViewById(R.id.beach)).setOnClickListener(this);
    ((Button) root.findViewById(R.id.map)).setOnClickListener(this);

    return root;
}

public void onClick(View v) {
    // TODO Auto-generated method stub
    Button tmp = (Button) v;
    Button map = (Button) v;
    if (tmp.getId() == R.id.drink) {
        startActivity(new Intent("com.creatriks.zrce.DRINK"));
    } 
        if (tmp.getId() == R.id.sleep) {
            startActivity(new Intent("com.creatriks.zrce.SLEEP"));
        } 
            if (tmp.getId() == R.id.food) {
                startActivity(new Intent("com.creatriks.zrce.FOOD"));
            }


                if (tmp.getId() == R.id.events) {
                    startActivity(new Intent("com.creatriks.zrce.EVENTS"));
                } 
                    if (tmp.getId() == R.id.beach) {
                        startActivity(new Intent("com.creatriks.zrce.BEACH"));
                    }

                        if (map.getId() == R.id.map) {



                            AlertDialog alert = new AlertDialog.Builder(LayoutOne.this, AlertDialog.THEME_HOLO_LIGHT).create();
                            alert.setTitle("Options");
                            alert.setMessage("Choose an action");

                            startActivity(new Intent("com.creatriks.zrce.MAP"));



                }
            }

}

1 个答案:

答案 0 :(得分:4)

使用getActivity()返回与片段关联的活动。

更改此

AlertDialog alert = new AlertDialog.Builder(LayoutOne.this, AlertDialog.THEME_HOLO_LIGHT).create();

到此

AlertDialog alert = new AlertDialog.Builder(getActivity(), AlertDialog.THEME_HOLO_LIGHT).create();