Search code examples
androidandroid-activityextendscode-reuse

extends another activity class and reuse listener codes to views such as buttons etc


I have created an activity called ButtonActivity that has a lot of buttons and listeners. I want to create another activity TwoButtonsActivity to extend ButtonActivity so that the listeners I created can be resused. TwoButtonsActivity is similar to ButtonActivity but with small changes. Is this possible?

When I execute the code, I find that the extended activity do not respond to button click.

Here is the base activity:

public class ButtonActivity extends Activity {
int count = 0; 
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            button.setText("Got Pressed:" + ++count);
            }
    });
}

}

Below is the extends Activity:

public class TwoButtonsActivity  extends ButtonActivity {


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);




}

}

Solution

  • you can have a activity with listeners same below

      public class ButtonActivity extends Activity {
        int count = 0; 
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.main);
    
        }
        public void mylistener1(View v)
        {
        switch(v.getid()){
        case R.id.button:{
        //do somthings
        }break;
    }}
    
    public class TwoButtonsActivity  extends ButtonActivity {
    
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
    
    
    
    }
    

    }

    and in layout of TwoButtonsActivity(main) you set in tag of your button android:onclick="mylistener1" and you should set to any button or view that you want it use this listener