Как определить, является ли представление Button или Textview
У меня есть функция ошибки, которая принимает View
в качестве входных данных, и показывает ошибку, изменяя его фон на красный, в то время как есть проблема со значением представления следующим образом:
public static void error(View v) {
v.setBackgroundResource(android.R.color.holo_red_light);
}
Я использую эту функцию в другой функции, где я использую ее таким образом -
public static void nonEmptyNonZero(View v) {
String check = "";
check = ((TextView) v).getText().toString();
if ((check.equals(null)) || check.equals("0") || check.equals("")) {
error(v);
}
}
моя проблема в том, что v
может быть что угодно (TextView, EditText). Итак, как определить тип представления. Чтобы я мог использовать правильное приведение при получении его значения, используя -
check = ((TextView) v).getText().toString();
PS - я использовал instanceOf
уже, я не уверен, как кастинг View
работает.
0 ответов
Как ваши представления в списке объектов
List<Object> objectViews=new ArrayList();
Просмотры
EditText txtEditText=new EditText();
TextView txtTextView=new TextView();
objectViews.add(txtEditText);
objectViews.add(txtTextView);
пройти, чтобы найти объект (вид)
Object view=new Object();
for(int i=0;i<objectViews.size;i++)
{
view.get(i);
if(view instanceof EditText)
{
Log.e("EditText","value="((EditText) view).getText());
}
else if(view instanceof TextView)
{
Log.e("TextView","value="((TextView) view).getText());
}
}