2016-11-06 10 views
0

計算を行うアプリを開発しています。これは水平のlinearLayoutで構成され、各レイアウトには2つの編集テキストとスピナーがあります。私は、ユーザーが詳細を追加する必要があるときに、ボタンクリックでレイアウトを追加できるようにしたいと考えています。ボタンをクリックするごとにビューを表示する方法

私のXMLで私はandroid:visibility="gone"を設定し、Javaではメソッドを設定して、 "なし"リニアレイアウトをview.VISIBLEにしました。それは機能しましたが、+ボタンをクリックするとすべての線形レイアウトが表示されます。

+0

しばらくしてからフルストップ(ピリオド)を使います。単語は_button_です。 – greybeard

答えて

0

レイアウトインフレータを使用できます。

メインに、このビューを追加し、その後

LayoutInflater inflater = (LayoutInflater)context.getSystemService 
    (Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflater .inflate(R.layout.item_resource,null); 
    Button button =(Button)view.findViewById(R.id.btn); 
    button.setText(" "); // set value 

onClickイベントに実用的なレイアウト上膨らま

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<LinearLayout 
    android:id="@+id/linear" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" /> 

    <Button 
    android:id="@+id/btn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    /> 

    <!-- other layout elements which are required --> 

</LinearLayout> 

例えばitem_resource.xmlあなたが を必要なレイアウトやウィジェットを追加する別のリソースファイルを作成しますレイアウト 例:

+0

これは1回のクリックでしか機能しませんでしたが、ボタンをもう一度クリックすると追加されません。ボタンをクリックするたびにレイアウトが追加されるようにしたい。ありがとうございました。 –

+0

ボタンクリックで新しいビューを追加する場合は、RecycleViewとカスタムアダプタを使用します。カスタムアダプターのgetView()メソッドをオーバーライドしてボタンをクリックするとRecyleViewに新しい項目を追加します – Onkar

+0

サンプルコードで助けてください。ありがとうございました。 –

0

このような状況では、フラグメントを使用してください。イベントを介して表示するフラグメントを追加できます。

+0

私はアンドロイドを初めて使っています –

+0

フラグメントは、アクティビティ内のビヘイビアまたはユーザーインターフェイスの一部を表します。 1つのアクティビティで複数のフラグメントを結合して、マルチペインのUIを構築し、複数のアクティビティでフラグメントを再利用することができます。フラグメントは、独自のライフサイクルを持ち、独自の入力イベントを受け取り、アクティビティが実行されている間に追加または削除できる(「サブアクティビティ」のようなもの)アクティビティのモジュラセクションと考えることができます異なる活動における再利用)。 –

+0

ここの断片についてもっと読む。 –

関連する問題