有人可以帮帮我吗?
我一直在寻找几个小时,但我找不到解决方案。为什么我的onclicklistener不能工作?它首次运行但不适用于doLogin方法。为什么?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final FileUtils file = new FileUtils();
final String patientDetails = FileUtils.readFile("/TextFiles/patientDetails.txt");
if(patientDetails.equalsIgnoreCase("register")){
setContentView(R.layout.main);
//Toast t = Toast.makeText(getBaseContext(), patientDetails, Toast.LENGTH_SHORT);
//t.show();
ImageButton submit = (ImageButton) findViewById(R.id.btn_submit);
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String patientId1 = ((EditText) findViewById(R.id.patientId1)).getText().toString().trim();
String patientId2 = ((EditText) findViewById(R.id.patientId2)).getText().toString().trim();
String patientPassword1 = ((EditText) findViewById(R.id.patientPassword1)).getText().toString().trim();
String patientPassword2 = ((EditText) findViewById(R.id.patientPassword2)).getText().toString().trim();
if((patientId1.equals(patientId2))||(patientPassword1.equals(patientPassword2))){
//save to file
String result = file.writeFile1(patientId1+","+patientPassword1+",01:02:03:04:05");
if(result.equalsIgnoreCase("fail")){
Toast t = Toast.makeText(view.getContext(), "Patient details not saved, please try again.", Toast.LENGTH_SHORT);
t.show();
}else{
Toast t = Toast.makeText(view.getContext(), "Please login to use the application.", Toast.LENGTH_SHORT);
t.show();
}
doLogin();
//Intent myIntent = new Intent(view.getContext(), Activity2.class);
//startActivityForResult(myIntent, 0);
}else{
Toast t = Toast.makeText(view.getContext(), "Please reenter your login details.", Toast.LENGTH_SHORT);
t.show();
}
}
});
}else{
setContentView(R.layout.main2);
}
}
String _patientDetails = "";
private void doLogin(){
final FileUtils file = new FileUtils();
_patientDetails = FileUtils.readFile("/TextFiles/patientDetails.txt");
if(_patientDetails.equalsIgnoreCase("register")){
setContentView(R.layout.main);
}else{
ImageButton submit2 = (ImageButton) findViewById(R.id.btn_submit2);
Button pid3 = (Button)findViewById(R.id.pid3);
setContentView(R.layout.main2);
Button btn = (Button)findViewById(R.id.pid3);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Toast t = Toast.makeText(v.getContext(), "Please reenter your login details.", Toast.LENGTH_SHORT);
t.show();
}
});
}
}
}
答案 0 :(得分:0)
您是否实际通过调试器运行它?我很确定它会运行,但由于上下文,你没有看到Toast通知。尝试传入Activity或Application上下文。
基本上,我很确定你不应该使用getBaseContext()。 View有getContext(),但在这种情况下你可以使用Activity。