作成したCustomDialogからデータ(Object)を取得しようとしています。私は、CustomDialog内の学習曲線としてリスナーを使用して、ダイアログを呼び出すアクティビティにオブジェクトを送信する方法を学習したいと思います。私はいくつかのチュートリアルを試してみましたが、それは正しいとは思われません。私はエラーListenerを使用してCustomDialogからデータを取得しようとしていません
android.view.WindowManager $ BadTokenExceptionました:ウィンドウを追加することができません - ここにあるトークンnullはアプリケーション
マイCustomDialogのためではないが:
public class DetailsDialog extends Dialog implements TextWatcher {
private TextView textCount;
private EditText title, desc;
private Button next;
private DialogListener dialogListener;
public interface DialogListener {
public void detailsInputted(Memory memory);
}
public DetailsDialog(Context context, DialogListener dialogListener){
super(context);
this.dialogListener = dialogListener;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.details_dialog);
textCount = (TextView)findViewById(R.id.textCount);
title = (EditText)findViewById(R.id.title);
desc = (EditText)findViewById(R.id.desc);
desc.addTextChangedListener(this);
next = (Button)findViewById(R.id.next);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Memory memory = new Memory();
memory.setDescMem(desc.getText().toString());
memory.setTitleMem(title.getText().toString());
memory.setFormatedDate(new Date());
dialogListener.detailsInputted(memory);
dismiss();
}
});
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
textCount.setText(String.valueOf(140 - s.length()));
}
@Override
public void afterTextChanged(Editable s) {
}
}
そして、ダイアログが呼び出されます:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
DetailsDialog dialog = new DetailsDialog(getApplicationContext(), new DetailsDialog.DialogListener() {
@Override
public void detailsInputted(Memory memory) {
Log.i("MEMORY", memory.getDescMem());
Log.i("MEMORY", memory.getTitleMem());
}
});
dialog.show();
}
});
}
ダイアログのコンストラクターをコンテキストだけに戻した場合、ダイアログが表示されます。しかし、私はそれに設定されているオブジェクトを取得したい。あなたは皆、お手伝いし、ありがとう!