2012-07-26 45 views
0

嗨,我是一個機器人新手,我一直堅持了一個星期。任何幫助,將不勝感激!我做了大量的研究,無法弄清楚什麼是錯的。我已經成功地在兩部手機上運行了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 
     } 
    }); 
    } 
} 

回答

1

在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