Search code examples
androidif-statementonclicklistener

How to create if conditional for setOnClickListener in Android


I want to create If Conditional for setOnCLickListener, i create if conditional for variable Comment ( ImageButton ) when the forApproval.getVisibility() == View.VISIBLE value of Comment is like

ImageButton Comment = (ImageButton) fidViewById(R.id.apprComment);

because i have a different design in one layout and different function if i create *ex 2layout it's not efficient *i think

final LinearLayout forApproval = (LinearLayout) findViewById(R.id.ForApproval);
final LinearLayout forRequest = (LinearLayout) findViewById(R.id.ForRequest);

ImageButton Comment = null;
ImageButton Edit = null;

if (forApproval.getVisibility() == View.VISIBLE) {
    Comment = (ImageButton) findViewById(R.id.apprComment);
}

// I Want to create multi value in Edit, example in here
if (forRequest.getVisibility() == View.VISIBLE) {
    Edit = (ImageButton) findViewById(R.id.reqEdit);
}

if (forApproval.getVisibility() == View.VISIBLE) {
    Edit = (ImageButton) findViewById(R.id.apprEdit);
}

// I have some ImageButton in Layout, each ImageButton has a different id
// and i want to make if conditional example like ImageButton ( in LinearLayout ) 
// is VISIBLE value of Edit is ImageButton with id reqEdit otherwise is 
// ImageButton in ( LinearLayout VISIBLE value of Edit is ImageButton with id apprEdit


Edit.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
           // TODO your Script
    }
});

Comment.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
           // TODO your Script
    }
});

But i have error :

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
                                                                           at dca.application.taaku.hr.AttendandItemId.onCreate(AttendandItemId.java:194)

The Problem is in here :

Edit.setOnClickListener(new View.OnClickListener() {

Anyone can suggest me?


Solution

  • I think you need a dynamical variable to create if conditional for OnClick. I Suggest you to try debugging forRequest.getVisibility() and forApproval.getVisibility() just before crash point, so that you can see the result and fix the present issue for If Conditional