我正在构建一个应用程序,在您输入一些参数(P1,P2,P3)并单击“保存”后,将弹出一个请求数字的AlertDialog,在此编号中的用户键之后,程序将输入信息(P1, P2,P3)在SQLite寄存器表T1中。它将创建与用户在SQLite T2中的AlertDialog中定义的条目一样多的数据。
基本上我有下一个代码:
function updateactive() {
var clickedA = event.currentTarget,
newAttrValue = $(clickedA).attr('data-request-data').replace("active:'0'", "active:'1'");
$(clickedA).attr('data-request-data', newAttrValue);
}
目前我收到下一个错误,只创建了T1中的条目 致命的例外:
switch(item.getItemId()){
case R.id.Save:
final String UpdateStudyCode = eStudyCode.getText().toString();
final String UpdateStudyDescription = eStudyDescription.getText().toString();
final String UpdateStudyAnalyst = eStudyAnalyst.getText().toString();
if( l == 0){
//New Register Study
if (UpdateStudyCode == ""){
Toast.makeText(getApplicationContext(), "Empty Study Code", Toast.LENGTH_SHORT).show();
}
else{
AlertDialog.Builder dialogCreateElements = new AlertDialog.Builder(this);
dialogCreateElements.setIcon(android.R.drawable.ic_dialog_alert);
dialogCreateElements.setTitle(getResources().getString(R.string.element_create_title));
dialogCreateElements.setMessage(getResources().getString(R.string.element_create_messaje));
final EditText inputelementstarget = new EditText(this);
//dialogCreateElements.setInputType(InputType.TYPE_CLASS_PHONE);
//dialogCreateElements.setRawInputType(Configuration.KEYBOARD_12KEY);
dialogCreateElements.setView(inputelementstarget);
dialogCreateElements.setCancelable(false);
dialogCreateElements.setPositiveButton(getResources().getString(android.R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// TODO Auto-generated method stub
database db = new database (studydetail.this);
db.open();
//Create Study
long studyid;
studyid = db.createEntryStudy(UpdateStudyCode,UpdateStudyDescription,UpdateStudyAnalyst);
//Create number of specific elements
int element=1;
String value = inputelementstarget.getText().toString();
int target = Integer.parseInt(value);
do
{
Toast.makeText(getApplicationContext(), element, Toast.LENGTH_SHORT).show();
db.createEntryElements(element, studyid);
element++;
}
while (element < target+1);
db.close();
Toast.makeText(studydetail.this, R.string.element_create_confirmation, Toast.LENGTH_SHORT).show();
setResult(RESULT_OK);
}
});
dialogCreateElements.setNegativeButton(android.R.string.no, null);
dialogCreateElements.show();
答案 0 :(得分:0)
为了给你提供信息,错误就在这一行,
String value = inputelementstarget.getText().toString();
我没有找到您实际初始化此inputelementstarget
的位置。
实际上这不是你需要的初始化
final EditText inputelementstarget = new EditText(this);
我认为您正试图在EditText
中添加AlertDialog
。
为此目的,你需要做的是
EditText
的布局。像这样膨胀
LayoutInflater li = LayoutInflater.from(context);
View promptsView = li.inflate(R.layout.prompts, null);
然后你必须初始化
final EditText userInput = (EditText) promptsView
.findViewById(R.id.editTextDialogUserInput);
答案 1 :(得分:0)
你需要这样做:
Toast.makeText(getApplicationContext(), element, Toast.LENGTH_SHORT).show();
元素必须为字符串,当前 整数。
Toast.makeText(studydetail.this, R.string.element_create_confirmation, Toast.LENGTH_SHORT).show();
到
Toast.makeText(studydetail.this, getString(R.string.element_create_confirmation), Toast.LENGTH_SHORT).show();
希望这会对你有所帮助。
答案 2 :(得分:0)
如果要在以下位置显示element
值,则会发生错误:
Toast.makeText(getApplicationContext(), element, Toast.LENGTH_SHORT).show();
如果您想显示element
变量值,请改用String.valueOf(element)
,如下所示:
Toast.makeText(getApplicationContext(), String.valueOf(element) , Toast.LENGTH_SHORT).show();
你会得到理想的结果。
希望这会有所帮助!!