2012-06-17 76 views
1

我是编程新手,我有一些困难让AlertDialog工作。我有六个按钮显示,我想添加警报对话框,当第六个按钮被点击。但是我收到一个错误,说“构造函数AlertDialog.Builder(LayoutOne,int)未定义”。谁能帮我?构造函数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

尝试这种添加alert.show(); – mohamed

+0

这没关系。问题si“构造函数AlertDialog.Builder(LayoutOne,int)未定义” – Aljaz

回答

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(); 
相关问题