在BluetoothChat中单击按钮后,用户输入alertdialog无法打开

时间:2012-07-26 15:02:46

标签: android bluetooth alertdialog

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

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
      }
    });
  }
}

1 个答案:

答案 0 :(得分:1)

在OnClick方法中编写inputDialog代码。

享受!!