2012-09-06 185 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();