2012-05-14 2 views
0

У меня есть активность, которая при создании содержит EditText, но если вы нажмете кнопку, она будет заменена пользовательским представлением, называемым MinPick. Мне нужен другой класс, чтобы получить представление через findViewById(). Но, конечно, мне нужно определить, какой должна быть переменная, получающая идентификатор. Или EditText или MinPick. Как сделать какой-то условный, если это не EditText, он должен быть MinPick.Android Узнайте, какой вид присутствует

+2

В таких случаях я создаю оба вида с разными идентификаторами и изменяю их видимость. Это намного проще. –

ответ

0

Вы можете использовать «InstanceOf»:

final View tempView = findViewById(R.id.XXXxxxxXXX); 

if (tempView instanceof EditText) 
{ 
// TODO Do some stuff 
} 
else 
{ 
// TODO Do some other stuff 
} 
1

Вы можете проверить класс возвращаемого объекта с помощью instanceof:

final View v = findViewById(R.id.floating_component); 
if (v instanceof EditText) 
    // do stuff with the EditText instance; 
else if (v instanceof MinPick) 
    // do stuff with the MinPick instance; 

С другой стороны, @Sergey Glotov прав, это намного приятнее технику для иметь дело с государствами и на их основе показывать соответствующее мнение.

Смежные вопросы