我有Edittext Activity&我在不同的getter setter类中设置了Edittext Id。现在我想使用intent传递Edittext id。我正在尝试创建一个getter类的对象,但是当我调用getEdittext id时,它传递0或新值。谁能告诉我这是怎么可能的。
我的代码在这里:
case R.id.setDate:
Intent passAddTask_Id = new Intent(getApplicationContext(), Task_Details.class);
db = new TodoTask_Database(getApplicationContext());
tasknote = taskNote.getText().toString();
db.addTaskNote(tasknote, null, completed);
AddTask addTask = new AddTask(); //Getter setter class object
int addtask_Id = addTask.getTaskID(); //getting 0 value
passAddTask_Id.putExtra("AddTask_Id", addtask_Id);
startActivity(passAddTask_Id);
break;
获得意图:
Intent passAddTask_ID = getIntent();
int AddtaskID = passAddTask_ID.getIntExtra("AddTask_Id", 0);
答案 0 :(得分:0)
要获得该值,您必须像这样使用putExtra():
case R.id.setDate:
Intent passAddTask_Id = new Intent(getApplicationContext(), Task_Details.class);
passAddTask_Id.putExtra("AddTask_Id", 11);
db = new TodoTask_Database(getApplicationContext());
tasknote = taskNote.getText().toString();
db.addTaskNote(tasknote, null, completed);
AddTask addTask = new AddTask(); //Getter setter class object
int addtask_Id = addTask.getTaskID(); //getting 0 value
passAddTask_Id.putExtra("AddTask_Id", addtask_Id);
startActivity(passAddTask_Id);
break;
来自文档here -
<强>返回强> 以前使用putExtra()添加的项的值,如果未找到&gt;则为默认值。
之后,当你使用:
Intent passAddTask_ID = getIntent();
int AddtaskID = passAddTask_ID.getIntExtra("AddTask_Id", 0);
你会得到11的结果,因为你已经使用putExtra()方法。
答案 1 :(得分:0)
您正在通过意图正确传递值。我认为你在获得传递的值时会遇到问题。试试这个,这对我有用。
您必须使用捆绑来获取值。
Intent intent = new Intent();
Bundle b = intent.getExtras();
int addTaskID = b.getInt("AddTask_Id, 0);
答案 2 :(得分:0)
最后我在这里得到了答案......我需要在数据库中创建查询,在insert方法中返回long,然后调用该特定的行id。
像这样:public long addTaskNote(String taskNote, String TaskList_Id, String taskCompleted) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_TASKNOTE, taskNote); // Task Note
values.put(KEY_TASK_TASKLISTID, TaskList_Id); // TaskList ID
values.put(KEY_TASKCOMPLETED, taskCompleted); // Task Completed
// Inserting Row
long id = db.insert(TABLE_TODOTASK, null, values);
db.close(); // Closing database connection
return id; //It will give you the return value of id.
}
我的代码更改:
case R.id.setDate:
Intent passAddTask_Id = new Intent(getApplicationContext(), Task_Details.class);
db = new TodoTask_Database(getApplicationContext());
tasknote = taskNote.getText().toString();
long Addtask_id = db.addTaskNote(tasknote, null, completed);
System.out.println(Addtask_id);
passAddTask_Id.putExtra("AddTask_Id", Addtask_id);
startActivity(passAddTask_Id);
break;
在这里你可以获得运行时保存值的id。