2012-09-06 183 views
0

打開alertdialog當我關於如何實現alertdialog用XML佈局Android文檔中的樣子應用程序崩潰的機器人

here is the documentation

當我運行該程序,然後單擊待辦事項按鈕程序崩潰可以有人幫忙嗎?

這裏是我的源代碼:

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class StartMoving extends Activity implements OnClickListener { 

    Button todo; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.start_moving); 

     todo = (Button) findViewById(R.id.bTodo); 

     todo.setOnClickListener(this); 

    } 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch (v.getId()) { 
     case R.id.bTodo: 
      AlertDialog.Builder builder; 
      AlertDialog alertDialog; 

      Context mContext = getApplicationContext(); 
      LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE); 
      View layout = inflater.inflate(R.layout.to_do_list, null); 


      builder = new AlertDialog.Builder(mContext); 
      builder.setView(layout); 
      alertDialog = builder.create(); 
      alertDialog.show(); 
      break; 

     default: 
      break; 
     } 
    } 

} 

這裏的命名to_do_list.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:weightSum="100" > 

    <ScrollView 
     android:id="@+id/svTips" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="87" > 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/tvTipsTitle" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginBottom="10dp" 
       android:text="@string/tips" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/tvtmb" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/two_months_before" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvtmbSAP" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/tmb_sort_and_purge" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvtmb_sap_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/tmb_sap_content" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvtmbR" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/tmb_research" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvtmb_r_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/tmb_r_content" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvtmbCAMB" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/tmb_create_a_moving_builder" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvtmb_camb_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/tmb_camb_content" /> 

      <TextView 
       android:id="@+id/tvswb" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/six_weeks_before" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvswb_ordersupplies" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/swb_order_supplies" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvswb_os_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/swb_os_content" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvswb_use_it_or_lose_it" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/swb_use_it_or_lose_it" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvswb_uioli_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/swb_uioli_content" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvswb_take_measurement" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/swb_take_measurement" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvswb_tm_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/swb_tm_content" /> 

      <TextView 
       android:id="@+id/tvomb" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/one_month_before" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvomb_choose_your_mover_and_confirm_the_arragements" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/omb_choose_your_mover_and_confirm_the_arragements" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvomb_cymacta_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/omb_cymacta_content" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvomb_begin_packing" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/omb_begin_paking" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvomb_bp_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/omb_bp_content" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvomb_label" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/omb_label" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvomb_l_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/omb_l_content" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvomb_separate_values" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/omb_separate_values" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvomb_sv_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/omb_sv_content" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvomb_do_a_change_of_address" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/omb_do_a_change_of_address" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvomb_dacoa_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/omb_dacoa_content" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 

       <CheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

       <TextView 
        android:id="@+id/tvomb_notify_important_parties" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/omb_notify_all_important_parties" 
        android:textStyle="bold" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/tvomb_naip_content" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:text="@string/omb_naip_content" /> 
     </LinearLayout> 
    </ScrollView> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_weight="13" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/bReturntoTop" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="50" 
      android:text="Go back to top" /> 

     <Button 
      android:id="@+id/bgoto" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="50" 
      android:text="Go to" /> 
    </LinearLayout> 

</LinearLayout> 

xml文件,這是什麼logcat的顯示

enter image description here

+0

你能後的logcat的 –

+0

你能後的logcat的並嘗試使用v.getApplicationContext() –

+0

如果我進入v.getApplicationContext(我得到一個錯誤) – philip

回答

0

看來,我一直在閱讀上下文按鈕,而不是從alertDialog。解決方案是創建一個視圖,將其設置爲AlertDialog的View並聲明一個按鈕並將其設置爲View的子項。

final View view; 
LayoutInflater inf = LayoutInflater.from(StartMoving.this); 
view = inf.inflate(R.layout.rename, null); 
final EditText newname = (EditText) view.findViewById(R.id.etNewRoomName); 
final Button todo = (BUtton) view.findViewById(R.id.bTodo); 

new AlertDialog.Builder(StartMoving.this) 
.setView(view) 
.setTitle("Rename") 
.setMessage("Enter new name for room " + currentRoom) 
.show(); 
4

使用

Context mContext = v.getApplicationContext(); 

,而不是

Context mContext = getApplicationContext(); 

builder = new AlertDialog.Builder(StartMoving.this); 

編輯: 您正在閱讀按鈕

todo = (Button) findViewById(R.id.bgoto); <----------- 
            ^^^^^ 
todo.setOnClickListener(this); 
+0

我試過你的建議它仍然不工作,當我使用v.getApplicationContext();我得到一個錯誤 – philip

+0

看到我編輯的答案 – MAC

+0

對不起,我不明白你想解釋什麼? – philip

0
AlertDialog.Builder diag = new AlertDialog.Builder(this); 

diag.setTitle("DIALOG TITLE") 

.setMessage("YOUR MESSAGE") 

.setCancelable(false) 

.setNegativeButton("WHAT EVER THE BUTTON TEXT", 
    new DialogInterface.OnClickListener() { 

public void onClick(DialogInterface dialog, int id) { 

//enter code here 

//do what ever the button in the dialog is clicked 

dialog.cancel(); 
          } 
         }); 
     diag.show(); 

項目EATCHIP ST辦法有一個警告對話框

不要忘記在java中更改按鈕的ID以R.id.goto

0

如果您在使用TabHost然後alertDialog你寫..

final AlertDialog alertDialog = new AlertDialog.Builder(**getParent()**).create(); 
        //alertDialog.setTitle("Alert...."); 
        alertDialog.setMessage("Your Text"); 
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() 
        { 

         public void onClick(DialogInterface arg0, int arg1) 
         { 
          finish(); 
         } 

        }); 
        alertDialog.show();