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
}
});
}
}
是的,將onClick_register方法中的所有東西移動到onClick,然後擺脫onClick_register – DunClickMeBro 2012-07-26 15:48:22
@jawain:接受答案,如果它工作 – moDev 2012-07-26 15:50:21
哇,最後它的工作!謝謝!你能解釋一下使用onClick方法的區別嗎?此外,現在當我在對話框中輸入內容並單擊確定時,應用程序將被強制關閉而不是寫入主活動。我有另一個onClick實現問題嗎? – jawin 2012-07-26 16:52:08