Доступ к пользовательским свойствам вида после инфляции в Android - PullRequest
1 голос
/ 06 октября 2011

У меня есть действие с LinearLayout, к которому я хочу добавить несколько кнопок. Эти кнопки являются Custom Views, которые я раздуваю. Мне нужно добавить эти пользовательские кнопки в мой линейный макет в коде. Все это работает.

То, что я не могу заставить работать, - это использовать findViewById в моей пользовательской кнопке после того, как я надул ее, чтобы я мог установить ее свойства. findViewById возвращает ноль.

Код деятельности:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.levelbrowser);        
    LinearLayout uttonLayout = (LinearLayout)findViewById(R.id.ButtonLayout);                
    LevelBrowserButton button1 = new LevelBrowserButton(this, "Level 1");
    ButtonLayout.addView(button1);
}

Код пользовательской кнопки:

public LevelBrowserButton(Context context, String name) 
{
    super(context);
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);                 
    View layout = inflater.inflate(R.layout.levelbrowser_button, this);

    TextView nameTextView = (TextView) layout.findViewById(R.id.NameTextView);
    // nameTextView = null!
    NameTextView.setText("test"); // This will throw an exception

}

Я прочитал много постов в интернете и до сих пор не могу заставить это работать. Я также попробовал «Очистить ...» в Eclipse в моем проекте.

...