私は何か珍しいことをしようとしています。メニューボタンにメニューが添付されたメインアクティビティがあります。メニューの 1 つの項目でダイアログが開き、メイン アクティビティに追加されるコントロールを選択できます。私はそれが機能しているので、コントロールを追加し、データベースに保存します(次の実行のために記憶されます)。ボタンの onClickListener をメイン アクティビティの onClick に設定する必要があります。
public class MyMainActivity extends Activity
implements View.OnClickListener, View.OnTouchListener
{
private Context mContext;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
AbsoluteLayout mMainActivityView = new AbsoluteLayout;
SetContentView(mMainActivityView);
... populate mMainActivityView from database ...
public void onClick(View v) {
switch (v.id) {
case NEW_BUTTON_ID:
// TODO implement click handler
}
}
...
...
protected Dialog onCreateDialog(int id) {
switch (id) {
case NEW_BUTTON_DIALOG_ID:
...
...
builder.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
int XPos = Integer.valueOf(editXPos.getText().toString());
int YPos = Integer.valueOf(editYPos.getText().toString());
mDataLayer.AddControl(mScreenID, Width, Height, XPos, YPos, editButtonText.getText().toString());
Button button = new Button (mContext);
button.setLayoutParams(new AbsoluteLayout.LayoutParams(Width, Height, XPos, YPos));
button.setText(editButtonText.getText().toString());
mMainActivityView.addView(button);
// How to set Listeners from main activity?
button.setOnClickListener(?????);
button.setOnTouchListener(?????);
MyMainActivity.this.removeDialog(NEW_BUTTON_DIALOG_ID);
}
});
builder.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
MyMainActivity.this.removeDialog(NEW_BUTTON_DIALOG_ID);
}
});
AlertDialog NewButtonDialog = builder.create();
return NewButtonDialog;
}
return null;
}
onClick()
では、 AlertDialog のボタンを使用してメイン アクティビティを参照するにはどうすればよいでしょうか。