2012-06-17 80 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(); 
相關問題