2016-04-17 12 views
1

でカスタムビューへのアクセス私は、カスタムEditTextは、独自のファイルCustomEditText.javaに設定している私が使用findViewById

<LinearLayout> 

    <com.example.app.CustomEditText 
     ... 
    /> 
</LinearLayout> 

私これを自分のアクティビティクラスに入れてカスタムEditTextを作成します:

LayoutInflater inflater = getLayoutInflater(); 
    LinearLayout linearLayout= (LinearLayout) inflater.inflate(R.layout.activity_main, null); 

    CustomEditText customEditText = new CustomEditText(this, null); 

    linearLayout.addView(customEditText); 
    this.setContentView(linearLayout); 

彼の通常customEditText

customEditText.setText("Hello!") 

しかし、これは空のEditTextを返すように私はfindViewById(R.id.customEditText)と後で、このcustomEditTextアクセスすることはできません。

紛失しているものがありますか?

+1

を使用してビューを見つけることができるようになります2つの 'CustomEditText'をレイアウトに入れていますか? 1つをXMLに入れ、もう1つをアクティビティに追加しますか?また、あなたは 'customEditText'というIDを設定しますか? – Floern

答えて

1

あなたがXMLでビューを追加する場合は、XMLであなたのCustomEditTextに

CustomEditText customEditText = new CustomEditText(this, null); 
linearLayout.addView(customEditText); 

設定android:id="@+id/customEditTextで、プログラムを追加する必要はありません、あなたはfindViewById(R.id.customEditText)

+0

回答ありがとうございました。あなたが時間を持っていれば、私は2つのビューを持っていて、プログラムで作成したものにアクセスしなければならないと仮説的に答えられますか? – Lobstw

+1

プログラムでビューを追加すると、View.setId(NEW_ID)を呼び出してfindViewById(NEW_ID )にアクセスします。 –