cuốn sách gpt4 ai đã làm

android - 如何从 AlertDialog 中的 EditText 中检索值?

In lại Tác giả: Taklimakan 更新时间:2023-11-03 00:15:07 hai mươi bốn 4
mua khóa gpt4 Nike

Khi được chọn, tùy chọn menu ngữ cảnh sẽ bật lên AlertDialog. Tôi muốn người dùng nhập văn bản vào EditText trong AlertDialog và khi người dùng nhấn PositiveButton, giá trị của EditText có thể được "trả về" cho phương thức chính. Đây là mã có liên quan cho lớp học của tôi:

lớp công khai PassPlay mở rộng ListActivity {
public static int PENALTY_ID = Menu.FIRST+1;
chung tĩnh công khai int FUMBLE_ID = Menu.FIRST+2;
public static int ADDLYDS_ID = Menu.FIRST+3;
public static int SAFETY_ID = Menu.FIRST+4;

EditText ydsFromAlertDialog;

Chuỗi penYdsStr;

/** Được gọi khi hoạt động được tạo lần đầu tiên */
@Ghi đè
khoảng trống công khai onCreate(Gói đã lưuInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.passplay);

ydsFromAlertDialog=(EditText)findViewById(R.id.passYdsLabel);

registerForContextMenu(getListView());
}

boolean công khai onCreateOptionsMenu(Menu Menu) {
populateMenu(menu);
return(super.onCreateOptionsMenu(menu));
}

boolean công khai onOptionsItemSelected(MenuItem item) {
return(applyMenuChoice(item) || super.onOptionsItemSelected(item));
}

boolean công khai onContextItemSelected(MenuItem item) {
return(applyMenuChoice(item) || super.onContextItemSelected(item));
}

void void populateMenu(Menu menu) {
menu.add(Menu.NONE, PENALTY_ID, Menu.NONE, "Hình phạt");
menu.add(Menu.NONE, FUMBLE_ID, Menu.NONE, "Fumble");
menu.add(Menu.NONE, ADDLYDS_ID, Menu.NONE, "Các bãi bổ sung");
menu.add(Menu.NONE, SAFETY_ID, Menu.NONE, "An toàn");
}

boolean riêng applyMenuChoice(MenuItem item) {
Nhà máy LayoutInflater = LayoutInflater.from(this);
cuối cùng Xem văn bảnEntryView;
chuyển đổi (item.getItemId()) {
trường hợp PENALTY_ID:
textEntryView = Factory.inflate(R.layout.textdialog, null);
AlertDialog.Builder mới (cái này)
.setView(textEntryView)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle(R.string.timeout)
.setPositiveButton(R.string.offense, DialogInterface mới.OnClickListener() {
@Ghi đè
public void onClick(hộp thoại DialogInterface, int which) {
// Hành động khi hết thời gian tấn công
EditText hình phạtYds=(EditText)findViewById(R.id.ydsAssessedLabel);
penYdsStr = phạtYds.getText().toString();
ydsFromAlertDialog.setText(penYdsStr);
}
})
.setNeutralButton(R.string.defense, DialogInterface mới.OnClickListener() {
@Ghi đè
public void onClick(hộp thoại DialogInterface, int which) {
// Hành động khi hết thời gian phòng thủ
}
})
.setNegativeButton(R.string.cancel, null)
.trình diễn();
trả về đúng sự thật;
trường hợp FUMBLE_ID:
//Cửa sổ dò dẫm
trả về đúng sự thật;
trường hợp ADDLYDS_ID:
//Cửa sổ Yard bổ sung
trả về đúng sự thật;
trường hợp SAFETY_ID:
//Cửa sổ an toàn
trả về đúng sự thật;
}

trả lại (sai);
}
}

Bố cục XML chính (passplay.xml) có TextView, EditText, CheckBox, v.v. thông thường. Tôi muốn đặt một trong các EditText (ydsFromAlertDialog) để gán giá trị đã nhập trong AlertDialog (EditText hình phạtYds). Bố cục XML của AlertDialog (textdialog.xml) rất đơn giản, chỉ có một TextView và một EditText.

Khi tôi chạy chương trình, tôi gặp lỗi dòng sau "Ứng dụng bị dừng đột ngột."

penYdsStr = phạtYds.getText().toString();

Vì vậy, tóm lại, tôi muốn nhấn tùy chọn menu "Hình phạt", có AlertDialog với EditText trong đó tôi nhập một số và khi tôi nhấn PositiveButton, giá trị của EditText ydsFromAlertDialog sẽ thay đổi thành giá trị được nhập trong hộp thoại.

Trên thực tế, tôi có một bảng cơ sở dữ liệu có 5 cột, 4 trong số đó sẽ được điền bởi các trường thông thường, nhưng cột thứ 5 sẽ chứa các giá trị được nhập trong hộp thoại. Tôi hình dung nếu tôi có thể "trả lại" nó "cùng" với các giá trị còn lại, thì tôi cũng có thể lưu nó vào cùng một bản ghi bảng với các giá trị khác.

Nếu bạn cần thêm thông tin xin vui lòng cho tôi biết. Cảm ơn!

câu trả lời hay nhất

Bạn phải lấy ydsAssesedLabel từ Chế độ xem tăng cao của mình

EditText hình phạtYds=(EditText)textEntryView.findViewById(R.id.ydsAssesedLabel);

Làm cách nào để truy xuất giá trị từ EditText trong AlertDialog? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/6935242/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress