如何识别视图是Button还是Textview

时间:2014-04-03 10:53:31

标签: android view textview instanceof

我有一个错误函数,它将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

1 个答案:

答案 0 :(得分: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());
    }
}