Для начала: я не знаю, почему кто-то дали вам вниз на вопрос, так как это довольно просто вперед и ясно.
Теперь ответ.
Итак, все, для того, чтобы быть надлежащим образом «сделано», должно выполняться программно. Прежде чем я приведу вам какой-нибудь письменный код (в качестве примера), я немного объясню вам, как вы должны смотреть на это.
У вас есть основной файл XML, в котором у вас есть эта кнопка, которую вы хотите щелкнуть и щелкнув, чтобы на экране появилось больше кнопок. Чтобы добиться этого, создайте кнопки и сделайте их НЕВОЗМОЖНЫМИ или ВИДИМЫМИ в зависимости от о необходимости, на самом деле не очень хороший способ справиться с этим. Вы могли бы объяснить, почему? Ну, это явно не очень хорошо, потому что, хотя ваши кнопки невидимы, когда приложение запускается, кнопки, даже будучи невидимыми, создаются (рисуются). И это займет пространство и замедлит приложение.
Скажите, что вы хотите создать неопределенное количество кнопок, щелкнув по первой кнопке. Ну, вы даже не можете достичь этого, как вы описали в своем вопросе. Вы действительно ограничиваете себя, используя XML так много ,
Решение:
Итак, у вас есть файл XML, в котором у вас есть свой макет (относительный или линейный, не имеет значения, на данный момент) и Ваша кнопка, которая при нажатии создает кнопку.
Для того, чтобы получить ссылку на ваш XML-макет и вашу кнопку, вам необходимо предоставить им идентификатор. И вы делаете это внутри XML (я уверен, что вы это знаете, но я предпочитаю писать полные объяснения).
Предоставление идентификатора макета:
android:id="@+id/thelayout"
Предоставление идентификатора макета:
android:id="@+id/button"
(If you don't know where to add those IDs, comment it,I will help further)
Теперь, вы можете обратиться к раскладке и кнопки из Явы, это где он получает удовольствие ,
Вы определяете макет и кнопку. ПРИМЕЧАНИЕ: Проверьте свой XML-файл !!! Если у вас есть RelativeLayout, вам нужно определить RelativeLayout, если у вас есть LinearLayout ... хорошо понятно.
Я собираюсь предположить, что у нас есть LinearLayout.
LinearLayout ll;
Button btn;
Button thenewbutton;
ll= (LinearLayout)rootView.findViewById(R.id.thelayout); //The name we gave in XML
btn = (Button)rootView.findViewById(R.id.button);
What we need to do now, is to add a method which will do something when we click the buttom.
btn.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//Here we will handle the creation of the button;
thenewbutton = new Button(getActivity()); //Created the new button
thenewbutton.setText("One of the new buttons"); //Setted it the text in between the ""
setVisibility(View.VISIBLE); //Making it visible -like you were doing prolly.
//You can customize your button via methods.Write "thenewbutton." and eclipse will show you all the methods you can use in order to "play" with the new created button.
//Now, the button is created.All we need to do is to add it to the layout!Easy job.
ll.addView(thenewbutton);
return true;
}
});
И это все, в значительной степени.
Я объяснил это как можно подробней.Я знаю много, чтобы читать, но если вы хотите по-настоящему понять, чем за 3-5 минут прочитать и действительно пройти все, что я написал, и у вас будет еще один уровень понимания проблемы.
Если вам нужна дополнительная помощь, оставьте комментарий!
Cheers!
извлеките свой макет в и покажите скрыть свой тег include –