0

Я реализовал кнопку Float Action, которая имеет 5 кнопок суб-действия с использованием кода ниже, как я могу добавить onClickListener для каждой из этих кнопок суб-действия, чтобы при вы нажимаете кнопку, чтобы открыть другую активность.Как подключить onClicklistener к кнопке суб-действия

SubActionButton.Builder rLSubBuilder = new SubActionButton.Builder(this); 
    ImageView rlIcon1 = new ImageView(this); 
    ImageView rlIcon2 = new ImageView(this); 
    ImageView rlIcon3 = new ImageView(this); 
    ImageView rlIcon4 = new ImageView(this); 
    ImageView rlIcon5 = new ImageView(this); 
    //ImageView rlIcon6 = new ImageView(this); 

    rlIcon1.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_contact)); 
    rlIcon2.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_currency_info)); 
    rlIcon3.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_exhibition)); 
    rlIcon4.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_faq)); 
    rlIcon5.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_info_desk)); 
    //rlIcon6.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_passport)); 



    // Build the menu with default options: light theme, 90 degrees, 72dp radius. 
    // Set 4 default SubActionButtons 
    final FloatingActionMenu rightLowerMenu = new FloatingActionMenu.Builder(this) 
      .addSubActionView(rLSubBuilder.setContentView(rlIcon1).build()) 
      .addSubActionView(rLSubBuilder.setContentView(rlIcon2).build()) 
      .addSubActionView(rLSubBuilder.setContentView(rlIcon3).build()) 
      .addSubActionView(rLSubBuilder.setContentView(rlIcon4).build()) 
      .addSubActionView(rLSubBuilder.setContentView(rlIcon5).build()) 
      //.addSubActionView(rLSubBuilder.setContentView(rlIcon6).build()) 
      .attachTo(rightLowerButton) 
      .build(); 

    // Listen menu open and close events to animate the button content view 
    rightLowerMenu.setStateChangeListener(new FloatingActionMenu.MenuStateChangeListener() { 
     @Override 
     public void onMenuOpened(FloatingActionMenu menu) { 
      // Rotate the icon of rightLowerButton 45 degrees clockwise 
      fabIconNew.setRotation(0); 
      PropertyValuesHolder pvhR = PropertyValuesHolder.ofFloat(View.ROTATION, 90); 
      ObjectAnimator animation = ObjectAnimator.ofPropertyValuesHolder(fabIconNew, pvhR); 
      animation.start(); 
     } 

     @Override 
     public void onMenuClosed(FloatingActionMenu menu) { 
      // Rotate the icon of rightLowerButton 45 degrees counter-clockwise 
      fabIconNew.setRotation(90); 
      PropertyValuesHolder pvhR = PropertyValuesHolder.ofFloat(View.ROTATION, 0); 
      ObjectAnimator animation = ObjectAnimator.ofPropertyValuesHolder(fabIconNew, pvhR); 
      animation.start(); 
     } 
    }); 

} 

ответ

1

пробуйте:

SubActionButton button1 = rLSubBuilder.setContentView(rlIcon1).build(); 
SubActionButton button2 = rLSubBuilder.setContentView(rlIcon2).build(); 
[...] 
SubActionButton buttonN = {...} 

button1.setOnClickListener(...); 
button2.setOnClickListener(...); 
[...] 

final FloatingActionMenu rightLowerMenu = new FloatingActionMenu.Builder(this) 
      .addSubActionView(button1) 
      .addSubActionView(button2) 
      .addSubActionView(rLSubBuilder.setContentView(rlIcon3).build()) 
      .addSubActionView(rLSubBuilder.setContentView(rlIcon4).build()) 
      .addSubActionView(rLSubBuilder.setContentView(rlIcon5).build()) 
      //.addSubActionView(rLSubBuilder.setContentView(rlIcon6).build()) 
      .attachTo(rightLowerButton) 
      .build(); 
+0

спасибо. это сработало !!! – Omega

0

Я предполагаю, что вы используете это library. Глядя на source, вы можете видеть, что setContentView просто добавляет вид CircularActionMenu, который является производным от FrameLayout. Поэтому установка onClickListeners на ваш ImageViews, чтобы открыть новые действия, должна это сделать. Это то, что ваши onClickListeners должны выглядеть

rIIcon1.setOnClickListener(new View.OnCLickListener(){ 
    @Override 
    public void onClick(View view){ 
     Intent intent = new Intent(getApplicationContext(),ActivityName.class) 
     startActivity(intent) 
    } 
}) 

Точно так же прикрепить слушатель к другому imageviews

+0

да вы правы, но я новичок, как я могу установить onClickListeners к моему ImageViews. Я буду признателен за редактирование моего кода – Omega

+0

@Omega проверить редактирование – akash93

Смежные вопросы