2016-07-23 6 views
0

カスタムクラスでビューのIDを参照する方法を理解するのが難しいです。目標は、ボタン内のテキストを変更し、textViewの可視性を表示から非表示に変更できるクラスを作成することです。コードはスタンドアローンとしてはうまく動作しますが、作成されているすべてのドロップダウンセクションに対して、これを何度も繰り返しないようにしたいと思います。以下のコードは、私のメインクラスで開始するとき、これはonclickのリスナーに装着された場合には、何も私はそうでないのでR.id.btn1とR.id.text1がどうなるか参照するにはどうすればよいクラス内のビューのIDを参照する(クラス内のR.id.name)

を起こらないで

私はこれをクラスとして使うことができますか?

import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class toggleSection { 
    private Button button; 
    private TextView textView; 
    private boolean isOpen = false; 

    public toggleSection(Button button, TextView textView) { 
     this.button = button; 
     this.textView = textView; 
    } 

    public void toggleSection(Button button, TextView textView, String title) { 
     if (!isOpen) { 
      button.setText(title + " ►"); 
      textView.setVisibility(View.VISIBLE); 
      isOpen = true; 
     } else { 
      button.setText(title + " ▼"); 
      textView.setVisibility(View.GONE); 
      isOpen = false; 
     } 
    } 
} 

おかげで、あなたのtoggleSection()

+0

私は以下の方法で変数型を宣言しませんでした。これは、あなたが疲れているときにコード化しない理由です。編集した質問 – BR89

答えて

0

は、あなたがもう一度あなたのbuttontextviewへの参照を提供し、それらの参照のみを使用しています。ただし、コンストラクタで初期化しておく必要があるインスタンス変数をここで使用する必要があります。

関連する問題