Android 处理Singleton类中的添加、编辑和删除操作
我有一个单身班,看起来像Android 处理Singleton类中的添加、编辑和删除操作,android,singleton,android-edittext,Android,Singleton,Android Edittext,我有一个单身班,看起来像 public class SharedMemory { private Training currentTraining; private Trainee currentTrainee; private String currentAction; public static final String ACTION_ADD= "add"; public static final String ACTION_EDIT = "edit"; public static fi
public class SharedMemory {
private Training currentTraining;
private Trainee currentTrainee;
private String currentAction;
public static final String ACTION_ADD= "add";
public static final String ACTION_EDIT = "edit";
public static final String ACTION_DELETE = "delete";
private static SharedMemory instance;
private SharedMemory() {
}
public static SharedMemory getInstance() {
if (instance == null)
instance = new SharedMemory();
return instance;
}
public Training getCurrentTraining() {
return currentTraining;
}
public void setCurrentTraining(Training currentTraining) {
this.currentTraining = currentTraining;
}
public Trainee getCurrentTrainee() {
return currentTrainee;
}
public void setCurrentTrainee(Trainee currentTrainee) {
this.currentTrainee = currentTrainee;
}
public String getCurrentAction() {
return this.currentAction;
}
public void setCurrentAction(String currentAction) {
this.currentAction = currentAction;
}}
现在,我想点击特定的项目,它应该执行它的特定任务添加新的,编辑信息和删除到和从数据库
用于添加
Button addnew = (Button) findViewById(R.id.add_btn);
addnew.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// Add new Trainee
SharedMemory.getInstance().setCurrentAction(
SharedMemory.ACTION_ADD);
SharedMemory.getInstance().setCurrentTrainee(new Trainee());
Intent intent = new Intent(TraineeActivity.this,
FormActivity.class);
TraineeActivity.this.startActivity(intent);
}
});
traineesList
用于编辑
traineesListView
.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
currentTrainee = (Trainee) arg0.getAdapter().getItem(
arg2);
String items[] = { "Edit your information",
"Unregister from training" };
Builder alert = new AlertDialog.Builder(
TraineeActivity.this);
alert.setTitle("Dear!" + " "
+ currentTrainee.getFormatedName() + "," + " "
+ "Choose your action!!");
alert.setItems(items, new OnClickListener() {
@Override
public void onClick(DialogInterface arg0,
int selectedItem) {
if (selectedItem == 0) {
SharedMemory.getInstance()
.setCurrentAction(
SharedMemory.ACTION_EDIT);
SharedMemory.getInstance()
.setCurrentTrainee(currentTrainee = new Trainee());
Intent intent = new Intent(
TraineeActivity.this,
FormActivity.class);
TraineeActivity.this.startActivity(intent);
} else if (selectedItem == 1) {
// delete trainee information
}
}
});
alert.show();
return true;
}
traineesListView
.setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
长单击(AdapterView arg0,
视图arg1、整数arg2、长arg3){
Current培训生=(培训生)arg0.getAdapter().getItem(
arg2);
字符串项[]={“编辑您的信息”,
“取消培训注册”};
生成器警报=新建警报对话框.Builder(
培训活动;
alert.setTitle(“亲爱的!”+“
+Current培训生。GetFormattedName()+“,”+“”
+“选择你的行动!!”;
alert.setItems(items,新的OnClickListener(){
@凌驾
public void onClick(对话框接口arg0,
int selectedItem){
如果(selectedItem==0){
SharedMemory.getInstance()文件
.setCurrentAction(
SharedMemory.ACTION\u EDIT);
SharedMemory.getInstance()文件
.SetCurrent培训生(Current培训生=新培训生());
意图=新意图(
培训活动,
形式活动(类);
培训活动。此。开始触觉(意图);
}else if(selectedItem==1){
//删除学员信息
}
}
});
alert.show();
返回true;
}
现在,我想在另一个活动中,当操作为action_EDIT时,自动将currentTrainee的值传递到edittext字段。什么不起作用?您采取了哪些步骤来传递该信息?发生了什么事?在您发布更多关于您所做的事情、您希望做的事情的详细信息之前,没有人能够帮助您发生,以及实际发生的情况。这些字符串“添加”、“编辑”、“删除”在sharedmemory类中没有任何效果。我想做一些特定的操作。例如,如果我单击按钮,它应该会打开另一个活动,并且应该知道是时候添加新的受训人员了,而不是编辑或删除。您定义了这些字符串,但没有对它们做任何其他操作。如果您想了解如何将信息传递给新的act注意,我建议您阅读问题。@PaF请检查我编辑的问题。我执行的方法错误。现在我解决了一半。但仍然存在一些问题。为什么您要在
SharedMemory.getInstance().setCurrentTrainee(currentTrainee=new Trainee())中分配给currentTrainee;
?您不是想传递在函数开头检索到的学员,比如SharedMemory.getInstance().setCurrentTrainee(currentTrainee);
?