2017-01-05 7 views
0

ボタンをクリックしてレイアウトを削除しようとしています。ボタンをクリックしてレイアウトを削除する

私はMainActivity.javaファイル内でこのメソッドを持っている:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/button_removeView" 
    android:onClick="goBack" /> 

しかし、それは私にこれを与える:このボタンは、私が削除したいビューでクリックされたときに、それが発射される

public void goBack(View view) { 
    TableLayout parent = (TableLayout) findViewById(R.id.activity_main); 
    RelativeLayout child = (RelativeLayout) findViewById(R.id.activity_displayMessage); 
    parent.removeView(child); 
} 

メッセージ:

java.lang.IllegalStateException: 親や祖先共同で、メソッドGOBACK(ビュー)を見つけることができませんでしたandroid用のntext:onClick

MainActivityは私のすべてのメソッドのメインファイルですので、なぜそれが見つからないのか分かりません。

どこに見つけたらいいですか?

ありがとうございます!

+1

フラグメント内で使用している可能性があります。簡潔にするためにフラグメントでは動作しません。 'setOnClickListener'を使用してください。 –

答えて

1

このような問題を回避するには、レイアウトからonClickを削除し、その代わりにOnClickListenerをプログラムで追加します。

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View v = inflater.inflate(R.layout.fragment_layout, container, false); 

    v.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
     //here Your code 
     } 
    }); 

    return v; 
} 

次のことができます。

まず、フラグメント最高の場所を使用する場合には

getView().findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
    //here Your code 
    } 
}); 

onCreateView方法になります第二には、リスナーの追加要素

<Button 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/button_removeView" 
android:id="@+id/button" 
/> 

にIDを追加しますまた、他のフラグメントは、リスナーなど:

v.findViewById(R.id.button).setOnClickListener(this); 

この場合fragementにOnClickListenerインタフェースを実装しなければなりません。

+0

アンドロイド:onClick =" goBack "も削除してはいけませんか? –

+0

@DaleWilson私は最初の行でそれについて述べました "レイアウトからonClickを削除" –

+1

はい、あなたのサンプルコード "要素にIDを追加"はまだそれを含んでいます –

1

parent.removeViewAt(0)を使用します。ここで、「0」は子のインデックスです。特定のインデックスのビューを削除します。

関連する問題