1

我是编程新手,在让 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"));



                }
            }

}

4

1 回答 1

4

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

改变这个

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

对此

AlertDialog alert = new AlertDialog.Builder(getActivity(), AlertDialog.THEME_HOLO_LIGHT).create();
于 2012-06-17T08:00:57.130 回答