我的OnClickListener没有触发

时间:2011-10-02 16:36:02

标签: android button onclick

有人可以帮帮我吗?

我一直在寻找几个小时,但我找不到解决方案。为什么我的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();  
                    }          
                }); 
        }
    }
}   

1 个答案:

答案 0 :(得分:0)

您是否实际通过调试器运行它?我很确定它会运行,但由于上下文,你没有看到Toast通知。尝试传入Activity或Application上下文。

基本上,我很确定你不应该使用getBaseContext()。 View有getContext(),但在这种情况下你可以使用Activity。