用户输入alertdialog不打开后点击按钮BluetoothChat

问题描述:

嗨,我是一个机器人新手,我一直坚持了一个星期。任何帮助,将不胜感激!我做了大量的研究,无法弄清楚什么是错的。我已经成功地在两部手机上运行了bluetoothchat示例代码,并通过蓝牙成功地进行了通信。我还成功编写并运行了一个独立的应用程序,在点击主要活动的按钮后,打开一个自定义的alertdialog,它接受用户输入,并将输入传递回主要活动。但是,当我将alertdialog代码写入BluetoothChat代码时,单击按钮时没有任何反应。我试着用手机来调试调试器,但没有运气。它似乎没有进入包含按钮点击的代码。没有错误显示。为什么alertdialog不会弹出按钮点击?这里是我修改的BluetoothChat.java代码:用户输入alertdialog不打开后点击按钮BluetoothChat

public class BluetoothChat extends Activity implements OnClickListener{ 

    final Context context = this; 
    private Button rButton; 
    View rScreen; 
    private EditText mAlertDialog; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if(D) Log.e(TAG, "+++ ON CREATE +++"); 

    // Set up the window layout 
    setContentView(R.layout.main); 

    // Get local Bluetooth adapter 
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 

    // If the adapter is null, then Bluetooth is not supported 
    if (mBluetoothAdapter == null) { 
     Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_LONG).show(); 
     finish(); 
     return; 
    } 

    //components from main.xml 
    //When button is clicked, the alert dialog is pulled up 
    rButton = (Button)findViewById(R.id.buttonr); 
    mAlertDialog = (EditText)findViewById(R.id.edittextresultm); 

    //add button listener 
    rButton.setOnClickListener(new OnClickListener() { 

     //@Override 
     public void onClick_register(View view) { 

     String title = "title"; 
     String buttonOk = "OK"; 
     String buttonCancel = "Cancel"; 
     String madd, name; 

     //get review.xml view 
     LayoutInflater li = LayoutInflater.from(context); 
     View rView = li.inflate(R.layout.review, null); 

     //AlertDialog dialog; 
     AlertDialog.Builder adRegister = new AlertDialog.Builder(context); 


     //set review.xml to adRegister builder 
     adRegister.setView(rView); 

     //set title 
     adRegister.setTitle(title); 


     //Set EditText views to get user input 

     final EditText mField = (EditText)rView.findViewById(R.id.editTextm); 
     final EditText nField = (EditText)rView.findViewById(R.id.editTextn); 

     //set dialog message 
     adRegister.setMessage("Message") 
      .setCancelable(false) 
      .setPositiveButton(buttonOk, new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 

      String madd = mField.getText().toString(); 
      String name = nField.getText().toString(); 

      //get user input and set it to result on main activity 
      mAlertDialog.setText(mField.getText()); 
      } 
     }) 
     .setNegativeButton(buttonCancel, new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
      //if this button is clicked, close current activity 
      dialog.cancel(); 

      } 
     }); 

     //Create alert dialog 
     AlertDialog alertDialog = adRegister.create(); 
     //dialog= adRegister.create(); 
     //show it 
     adRegister.show(); 
     //dialog.show(); 
     } 

     public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     } 
    }); 
    } 
} 

在OnClick方法中写入inputDialog代码。

享受!

+0

是的,将onClick_register方法中的所有东西移动到onClick,然后摆脱onClick_register – DunClickMeBro 2012-07-26 15:48:22

+0

@jawain:接受答案,如果它工作 – moDev 2012-07-26 15:50:21

+0

哇,最后它的工作!谢谢!你能解释一下使用onClick方法的区别吗?此外,现在当我在对话框中输入内容并单击确定时,应用程序将被强制关闭而不是写入主活动。我有另一个onClick实现问题吗? – jawin 2012-07-26 16:52:08