Мой OnClickListener не стреляет - PullRequest
1 голос
/ 02 октября 2011

Может кто-нибудь, пожалуйста, помогите мне?

Я искал часы и не могу найти решение. Почему мой 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 голосов
/ 02 октября 2011

Вы действительно запускали его через отладчик? Я почти уверен, что он работает, но вы не видите уведомления Toast из-за контекста. Попробуйте передать либо действие, либо контекст приложения.

По сути, я почти уверен, что вы не должны использовать getBaseContext (). У представления вместо этого есть getContext (), но в этом случае вы можете просто использовать Activity.

...