在android中如何获取所有edittext标记名称

时间:2015-03-24 03:55:31

标签: android

在我的android项目 new_test.xml 中包含: -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
     >
<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/liner" >
    <EditText
        android:id="@+id/user"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" 
         android:tag="user">


    </EditText>

    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" 
         android:tag="name"/>

    <EditText
        android:id="@+id/partner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" 
         android:tag="partner"/>

    <EditText
        android:id="@+id/home"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" 
         android:tag="home"/>
      </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

    </LinearLayout>
</LinearLayout>

现在我想获取edittext字段的所有标记名称。这是我的类文件: -

public class MainActivity extends Activity {

TextView txt;
String values;

    Context ctx;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_test);

       txt = (TextView) findViewById(R.id.textView1);


    ViewGroup group = (ViewGroup)findViewById(R.id.liner);
    for (int i = 0; i<= group.getChildCount();  ++i) {
        View view = group.getChildAt(i);
          if (view instanceof EditText) {
           values = (String) ( ((EditText)view).getTag());
         txt.setText(values);
        }
    }



}
}

它应该返回用户,名称,合作伙伴,家庭。 ..但它只返回“home” ..并非所有标记名..我想要获取所有的标记名。

我有

Formerr  error = new Formerr ();
                    String field= error.getField();
                    String  message= error.getMessage();

现在我想要

ViewGroup group = (ViewGroup)findViewById(R.id.signup_new_user);
                for (int i = 0; i<= group.getChildCount();  ++i) {
                    View view = group.getChildAt(i);
                      if (view instanceof EditText) {
                       if(field.equals((String) ( ((EditText)view).getTag())))
                    //
                    }
                }

这里的字段是string..string字段将返回: - user / name / partner / home(其中任何一个)..当字段与标记名称匹配时..我想设置字符串messgae 到那个特定的edittext ..我可以设置那条消息吗?

1 个答案:

答案 0 :(得分:1)

使用TextView.append(CharSequence text)在单个TextView中显示所有标记:

     txt.append(values+"\n");

修改

  

如何使用该标记名称

将消息设置为特定视图

通过比较两个字符串来做到这一点:

View view = group.getChildAt(i);
if (view instanceof EditText) {
  EditText edtText=((EditText)view);
  values = edtText.getTag().toString();
  if(field.equals(values)){
      edtText.setText(message);
   }
}