Доступ к программно сгенерированным объектам CustomView по их идентификаторам - PullRequest
0 голосов
/ 12 января 2020

Я пытаюсь получить доступ к объекту пользователя View, созданному в button1 из button2, таким образом:

final Button button1 = (Button) findViewById(R.id.generate);
button1.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        ObjectView object = new ObjectView(getApplicationContext());
        object.setLayoutParams(new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));
        object.setId(componentsIds);
        relativeLayout.addView(object);

    }
});

final Button button2 = (Button) findViewById(R.id.useComponent);
button2.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
       ObjectView object =  findViewById(componentsIds);
       object.bringToFront();
    }
});

Но я получаю эту ошибку:

java .lang.ClassCastException: android .widget.Button не может быть приведен к startup.project.views.ObjectView

1 Ответ

1 голос
/ 12 января 2020

Вы добавили пользовательский вид вlativeLayout. Таким образом, вы должны использовать relativeLayout, чтобы получить это пользовательское представление.

Попробуйте использовать

ObjectView object =  relativeLayout.findViewById(componentsIds);

вместо

ObjectView object =  findViewById(componentsIds);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...