2015-03-18 4 views
0

Я пытаюсь реализовать, чтобы создать кнопку программно в android в моем классе фрагмента. Однако после нескольких часов поиска я не смог найти подходящее решение. Вот мой XML-код:Создание кнопки программно в OnCreateView (класс фрагмента)

<LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:background="#ffffff" 
       android:orientation="vertical" > 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="#ffffff" 
        android:orientation="horizontal" > 

        <ImageButton 
         android:id="@+id/imageButton1" 
         android:layout_width="wrap_content" 
         android:layout_height="77dp" 
         android:layout_weight="1.70" 
         android:background="#FFCDD2" 
         android:src="@drawable/airtel_round_s" /> 

        <Button 
         android:id="@+id/airtelamt" 
         android:layout_width="188dp" 
         android:layout_height="77dp" 
         android:layout_weight="0.45" 
         android:background="#FFCDD2" 
         android:text="Button" /> 
       </LinearLayout> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="#ffffff" 
        android:orientation="horizontal" > 

        <ImageButton 
         android:id="@+id/iciciBtn" 
         android:layout_width="wrap_content" 
         android:layout_height="77dp" 
         android:layout_weight="1.70" 
         android:background="#FFE0B2" 
         android:src="@drawable/icici_logo_s" /> 

        <Button 
         android:id="@+id/iciciamt" 
         android:layout_width="188dp" 
         android:layout_height="77dp" 
         android:layout_weight="0.45" 
         android:background="#FFE0B2" 
         android:text="Button" /> 
       </LinearLayout> 
       </LinearLayout> 

Может кто-то пожалуйста, руководство меня через это ??

Вот снимок экрана приложения: enter image description here

+0

Где точно вы хотите добавить кнопку (в которой Layout)? – Rami

+0

Внутри линейного макета. Иерархия должна быть такой же, как определено в xml выше. – TechFrk

+0

1) Вы хотите создать «Button», который программно загружает этот xml каждый раз, когда вы нажимаете на него, или вы хотите программно добавить «Button» в этот xml? --- 2) Во втором случае в вашем xml есть ** 3 ** 'LinearLayout' (s), и о чем вы говорите? – Rami

ответ

0

вы пытаетесь повторить следующее расположение в прагматично?

   <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="#ffffff" 
        android:orientation="horizontal" > 

        <ImageButton 
         android:id="@+id/imageButton1" 
         android:layout_width="wrap_content" 
         android:layout_height="77dp" 
         android:layout_weight="1.70" 
         android:background="#FFCDD2" 
         android:src="@drawable/airtel_round_s" /> 

        <Button 
         android:id="@+id/airtelamt" 
         android:layout_width="188dp" 
         android:layout_height="77dp" 
         android:layout_weight="0.45" 
         android:background="#FFCDD2" 
         android:text="Button" /> 
       </LinearLayout> 

Затем используйте ListView

1) изменить свой основной XML как этот

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
    <ListView 
     android:id="@+id/listView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
    </ListView> 

</LinearLayout> 

2) создать новый файл XML и вставить

    <LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:background="#ffffff" 
         android:orientation="horizontal" > 

         <ImageButton 
          android:id="@+id/imageButton1" 
          android:layout_width="wrap_content" 
          android:layout_height="77dp" 
          android:layout_weight="1.70" 
          android:background="#FFCDD2" 
          android:src="@drawable/airtel_round_s" /> 

         <Button 
          android:id="@+id/airtelamt" 
          android:layout_width="188dp" 
          android:layout_height="77dp" 
          android:layout_weight="0.45" 
          android:background="#FFCDD2" 
          android:text="Button" /> 
        </LinearLayout> 

3) создать Adapter для заполнение ListView

+0

Да, макет повторяется. – TechFrk

+0

Я хочу динамически создать кнопку в классе Fragment. Есть условие, что у меня есть место в классе Fragment. если он будет выполнен, кнопка будет создана. Я не могу держать его неподвижным. – TechFrk

0

Вы получите помощь для вашей проблемы от этого:

ArrayList<String> mList = new ArrayList<String>(); 

mList.add("Button 0"); 
mList.add("Button 1"); 
mList.add("Button 2"); 
// this has added 3 buttons 

ListAdapter mAdapter = new ListAdaper(getApplicationContext, mList); 

if(/* your condition */) { 
    mList.add("Button "+i); 
} 
0

Добавить идентификатор к вашему LinearLayout:

<LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:background="#ffffff" 
       android:orientation="vertical" > 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="#ffffff" 
        android:orientation="horizontal" 
        android:id="@+id/myLinearLayout"><!-- i guess this is your LinearLayout--> 

        <ImageButton 
         android:id="@+id/imageButton1" 
         android:layout_width="wrap_content" 
         android:layout_height="77dp" 
         android:layout_weight="1.70" 
         android:background="#FFCDD2" 
         android:src="@drawable/airtel_round_s" /> 

        <Button 
         android:id="@+id/airtelamt" 
         android:layout_width="188dp" 
         android:layout_height="77dp" 
         android:layout_weight="0.45" 
         android:background="#FFCDD2" 
         android:text="Button" /> 
       </LinearLayout> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="#ffffff" 
        android:orientation="horizontal"> 

        <ImageButton 
         android:id="@+id/iciciBtn" 
         android:layout_width="wrap_content" 
         android:layout_height="77dp" 
         android:layout_weight="1.70" 
         android:background="#FFE0B2" 
         android:src="@drawable/icici_logo_s" /> 

        <Button 
         android:id="@+id/iciciamt" 
         android:layout_width="188dp" 
         android:layout_height="77dp" 
         android:layout_weight="0.45" 
         android:background="#FFE0B2" 
         android:text="Button" /> 
       </LinearLayout> 

Тогда из кода Java:

Button myButton = new Button(YourActivity.this); 
    myButton.setText("new button"); 

    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(width, height, weight); 
    myButton.setLayoutParams(param); 

    myButton.setBackgroundResource(YourResource); // like "android:src" 
    myButton.setBackground(Drawable); // like "android:background" 

    LinearLayout ll = (LinearLayout)findViewById(R.id.myLinearLayout); 

    ll.addView(myButton, param); 
+0

Я получил это. Но я все еще не могу установить, как установить параметры кнопки, такие как layout_weight, layout_height, android: background, android: src ?? – TechFrk

+0

@TechFrk см. Мое обновление! – Rami

+0

Thanku ... Как насчет layout_weight? – TechFrk

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