Как определить, является ли представление 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());
    }
}
Другие вопросы по тегам