Y Tôi cũng đã phải đối mặt với vấn đề này.
Nhiều nhà phát triển cũng gặp phải sự cố khi truyền dữ liệu từ hộp thoại đến hoạt động khác thông qua Intent hoặc Bundle. Nó trả về null tại thời gian truy xuất từ một hoạt động khác.
Và giải pháp duy nhất là SharedPreferences.
Nhưng bạn phải đặt nó bên trong nút gạt bỏ. (Ví dụ: ok/hủy vv)
Và lấy dữ liệu từ các hoạt động khác một cách dễ dàng thông qua các khóa tương tự. Không sử dụng bất kỳ dịch vụ nào theo sau mục đích phát sóng.
Các mã trong hoạt động thoại là như thế này:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.mailicon);
builder.setTitle(name);
builder.setView(view);
builder.setPositiveButton("Send Request",new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
String mailID = id.getText().toString();
//Here define all your sharedpreferences code with key and value
SharedPreferences prefs = getSharedPreferences("my_prefs", MODE_PRIVATE);
SharedPreferences.Editor edit = prefs.edit();
edit.putString("MID", mailID);
edit.commit();
}
});
Và từ khác lấy dữ liệu như thế này:
SharedPreferences bb = getSharedPreferences("my_prefs", 0);
String m = bb.getString("NUM", "");
Toast.makeText(this, m, Toast.LENGTH_SHORT).show();
Thêm một số checkings cho một tiêu chuẩn tốt.
Cảm ơn bạn
Và sau đó cho những gì bạn muốn gửi dữ liệu? nó làm cho không có sence cho tôi. – Sajmon
@sajmon tôi đang gửi dữ liệu này để hiển thị trong một hoạt động khác nhưng không muốn mở nó thông qua hoạt động này, bây giờ điều đó có hợp lý với bạn không? – scripter
bây giờ có xin lỗi> :) bạn vì vậy bây giờ bạn có thể lưu giá trị vào SharedPreferences và sau đó lấy chúng bất cứ khi nào bạn muốn. – Sajmon