我是编程的新手,我在使用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"));
}
}
}
答案 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();