使用findViewById访问自定义视图

时间:2016-04-17 22:38:45

标签: java android

我在自己的文件EditText中设置了自定义CustomEditText.java

public class CustomEditText extends EditText {
    ...
}

我在我的活动的XML中用全名引用它:

<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!")

但我稍后无法使用customEditText访问此findViewById(R.id.customEditText),因为这会返回空的EditText

我有什么遗失的东西吗?

1 个答案:

答案 0 :(得分:1)

如果以XML格式添加视图,则无需使用

以编程方式添加视图
CustomEditText customEditText = new CustomEditText(this, null);
linearLayout.addView(customEditText);

在xml中的CustomEditText上设置android:id="@+id/customEditText,您将能够使用findViewById(R.id.customEditText)

找到该视图
相关问题