1

У меня есть фрагмент с 8 кнопками, и я хочу, чтобы каждая кнопка приводила меня к другой компоновке, но я понятия не имею, как это сделать, у меня есть только одна кнопка, но я не знаю, как поставить других семи, кто-нибудь может мне помочь?несколько кнопок в фрагменте, как перенаправить на другой макет

это то, что я до сих пор:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 


    View view = inflater.inflate(R.layout.pagina_principal, container, false); 
    view.findViewById(R.id.btnazul).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(getActivity(), Rutas_azul.class)); 
     } 
    }); 

    return view; 


} 
+0

Вы можете добавить журнал ошибок? –

+0

Точно, как вы это сделали здесь ... Измените R.id.btnazul на соответствующий идентификатор кнопки и выполните соответствующее действие. Хорошей практикой будет объявление кнопок и реализация Fragment OnClickListener. В методе OnClick введите ключ-переключатель на идентификаторе представления и выполните соответствующее действие. – Neo

+0

повторите то же самое с другим 2-м параметром для конструктора Intent – Bhargav

ответ

1

Вы можете использовать один клик слушателя для всех кнопок:

private final View.OnClickListener mListener = new View.OnClickListener() { 
    public void onClick(View view) { 
     switch (view.getId()) { 
      case R.id.button1: 
       // do stuff 
       break; 
      case R.id.button2: 
       // do stuff 
       break; 
      case R.id.button3: 
       // do stuff 
       break; 
     } 
    } 
} 

Тогда в вашем onCreateView

view.findViewById(R.id.button1).setOnClickListener(mListener); 
view.findViewById(R.id.button2).setOnClickListener(mListener); 
view.findViewById(R.id.button3).setOnClickListener(mListener); 

сделать для все 8 кнопок.

+0

Спасибо много!! Вы спасли мою жизнь! : D –

0

Привет @Alejandro Gurrola

Сделайте свой фрагмент реализации View.OnClickListener

Затем реализовать onclcick метод, как показано ниже.

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.button1: 
      //Start activity one 
      break; 
     case R.id.button2 
      //Start activiy two 
      break; 
     // Do this for all buttons. 
    } 
} 

Затем в методе onCreateView() вашего фрагмента выполните следующее.

Button button1 = view.findViewById(R.id.button1); 
Button button2 = view.findViewById(R.id.button2); 
// Do this for all the buttons 

.

button1.setOnClickListener(this); 
button2.setOnClickListener(this); 
//Do this for all the butons. 

Надеюсь, это то, что вы ищете.

+0

Я сделал это, но onCreateView не распознает вид в view.findViewById –

+0

View view = inflater.inflate (R.layout.pagina_principal, container, false); это ваше мнение –

+0

Я сделал то, что вы сказали, и теперь ошибка отличается:/я не могу вставить код из-за длины –