【问题标题】:EditText in Android did not display its value until it has focusAndroid中的EditText在获得焦点之前不会显示其值
【发布时间】:2014-02-07 02:20:05
【问题描述】:

我很难解决这个对其他人来说可能是基本问题的问题。我找不到我犯错的地方。我正在尝试检索有关所选机构名称的所有信息,并在具有所需相应值时将其设置在 editText 上。我能够检索所有数据(我将其记录到 logcat 以检查它是否真的有价值),但直到我单击它时它才显示在 editText 上。我试图使editText无效甚至请求关注但没有工作。我真的想不通。我附上了我的屏幕图片并发布了该布局的 xml。提前感谢那些会帮助我的人。

<RelativeLayout
            android:id="@+id/layout_complete_address"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/rel_ca">

            <TableLayout
                android:id="@+id/tbl_2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">

                <TableRow
                    android:id="@+id/tbl2_row1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" >

                    <TextView
                        android:id="@+id/lbl_bldg_name"
                        android:layout_width="210dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:text="@string/lbl_bldgname"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <EditText
                        android:id="@+id/txt_bldg_name"
                        android:layout_width="485dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_edittext_bg"
                        android:imeOptions="actionNext"
                        android:inputType="textCapWords"
                        android:nextFocusDown="@+id/txt_bldg_no"
                        android:padding="3dp"
                        android:textSize="18sp" 
                        android:singleLine="true"/>

                    <TextView
                        android:id="@+id/lbl_bldg_no"
                        android:layout_width="140dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:text="@string/lbl_bldgno"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <EditText
                        android:id="@+id/txt_bldg_no"
                        android:layout_width="340dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_edittext_bg"
                        android:imeOptions="actionNext"
                        android:inputType="textCapWords"
                        android:nextFocusDown="@+id/txt_street_name"
                        android:padding="3dp"
                        android:textSize="18sp" 
                        android:singleLine="true"/>
                </TableRow>

                <TableRow
                    android:id="@+id/tbl2_row2"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp" >

                    <LinearLayout
                        android:id="@+id/linear_name1"
                        android:layout_width="215dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="*"
                            android:textColor="@color/red"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/lbl_street_name"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/lbl_street_name"
                            android:textColor="@color/black"
                            android:textSize="18sp" />
                    </LinearLayout>

                    <EditText
                        android:id="@+id/txt_street_name"
                        android:layout_width="485dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_edittext_bg"
                        android:imeOptions="actionNext"
                        android:inputType="textCapWords"
                        android:nextFocusDown="@+id/txt_street_no"
                        android:padding="3dp"
                        android:textSize="18sp" 
                        android:singleLine="true"/>

                    <TextView
                        android:id="@+id/lbl_street_no"
                        android:layout_width="140dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:text="@string/lbl_street_no"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <EditText
                        android:id="@+id/txt_street_no"
                        android:layout_width="340dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_edittext_bg"
                        android:imeOptions="actionNext"
                        android:inputType="textCapWords"
                        android:nextFocusDown="@+id/txt_brgy"
                        android:padding="3dp"
                        android:textSize="20sp" 
                        android:singleLine="true"/>
                </TableRow>
            </TableLayout>

            <TableLayout
                android:id="@+id/tbl_3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tbl_2"
                android:layout_marginTop="5dp" >

                <TableRow
                    android:id="@+id/tbl3_row1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" >

                    <LinearLayout
                        android:id="@+id/linear_name1"
                        android:layout_width="215dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="*"
                            android:textColor="@color/red"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/lbl_brgy"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/lbl_brgy"
                            android:textColor="@color/black"
                            android:textSize="18sp" />
                    </LinearLayout>

                    <EditText
                        android:id="@+id/txt_brgy"
                        android:layout_width="975dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_edittext_bg"
                        android:imeOptions="actionDone"
                        android:inputType="textCapWords"
                        android:padding="3dp"
                        android:textSize="18sp" 
                        android:singleLine="true"/>
                </TableRow>
            </TableLayout>

            <TableLayout
                android:id="@+id/tbl_4"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tbl_3"
                android:layout_marginTop="5dp" >

                <TableRow
                    android:id="@+id/tbl4_row1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" >

                    <LinearLayout
                        android:id="@+id/linear_name3"
                        android:layout_width="215dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="*"
                            android:textColor="@color/red"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/lbl_city"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/lbl_city"
                            android:textColor="@color/black"
                            android:textSize="18sp" />
                    </LinearLayout>

                    <Spinner
                        android:id="@+id/spn_city"
                        android:layout_width="485dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_spinner_background"
                        android:padding="3dp" />
                </TableRow>

                <TableRow
                    android:id="@+id/tbl4_row2"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp" >

                    <LinearLayout
                        android:id="@+id/linear_name3"
                        android:layout_width="215dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="*"
                            android:textColor="@color/red"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/lbl_province"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/lbl_province"
                            android:textColor="@color/black"
                            android:textSize="18sp" />
                    </LinearLayout>

                    <Spinner
                        android:id="@+id/spn_province"
                        android:layout_width="485dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_spinner_background"
                        android:padding="3dp"
                        android:textSize="20sp" />

                    <TextView
                        android:id="@+id/lbl_zipcode"
                        android:layout_width="140dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:text="@string/lbl_zipcode"
                        android:textSize="18sp" />

                    <EditText
                        android:id="@+id/txt_zipcode"
                        android:layout_width="190dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_edittext_bg"
                        android:digits="1234567890"
                        android:imeOptions="actionNext"
                        android:inputType="number"
                        android:nextFocusDown="@+id/txt_lname"
                        android:padding="3dp"
                        android:textSize="20sp" 
                        android:singleLine="true"/>
                </TableRow>
            </TableLayout>

            <TableLayout
                android:id="@+id/tbl_5"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tbl_4" >

                <TableRow
                    android:id="@+id/tbl4_row3"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp" >

                    <LinearLayout
                        android:layout_width="215dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="*"
                            android:textColor="@color/red"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/lbl_telno"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/lbl_telno"
                            android:textColor="@color/black"
                            android:textSize="18sp" />
                    </LinearLayout>

                    <EditText
                        android:id="@+id/txt_country_code"
                        android:layout_width="85dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_edittext_bg"
                        android:digits="1234567890"
                        android:hint="Country Code"
                        android:imeOptions="actionNext"
                        android:inputType="number"
                        android:maxLength="2"
                        android:nextFocusDown="@+id/txt_area_code"
                        android:padding="3dp"
                        android:singleLine="true"
                        android:textSize="18sp" />

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="5dp"
                        android:layout_marginRight="5dp"
                        android:src="@drawable/img_dash" />

                    <EditText
                        android:id="@+id/txt_area_code"
                        android:layout_width="85dp"
                        android:layout_height="40dp"
                        android:background="@drawable/img_edittext_bg"
                        android:digits="1234567890"
                        android:hint="Area Code"
                        android:imeOptions="actionNext"
                        android:inputType="number"
                        android:maxLength="2"
                        android:nextFocusDown="@+id/txt_phone_no"
                        android:padding="3dp"
                        android:singleLine="true"
                        android:textSize="18sp" />

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="5dp"
                        android:layout_marginRight="5dp"
                        android:src="@drawable/img_dash" />

                    <EditText
                        android:id="@+id/txt_phone_no"
                        android:layout_width="130dp"
                        android:layout_height="40dp"
                        android:background="@drawable/img_edittext_bg"
                        android:digits="1234567890"
                        android:hint="Phone Number"
                        android:imeOptions="actionNext"
                        android:inputType="number"
                        android:maxLength="7"
                        android:nextFocusDown="@+id/txt_faxcountry_code"
                        android:padding="3dp"
                        android:singleLine="true"
                        android:textSize="18sp" />

                    <Button
                        android:id="@+id/btn_add_telno"
                        android:layout_width="65dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="5dp"
                        android:background="@drawable/img_gray_unpress"
                        android:paddingLeft="10dp"
                        android:paddingRight="10dp"
                        android:text="@string/btn_add"
                        android:textColor="@color/black"
                        android:textSize="18sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/lbl_telefax_no"
                        android:layout_width="216dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right|center_vertical"
                        android:text="@string/lbl_faxno"
                        android:textSize="18sp" />

                    <EditText
                        android:id="@+id/txt_faxcountry_code"
                        android:layout_width="85dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/img_edittext_bg"
                        android:digits="1234567890"
                        android:hint="Country Code"
                        android:imeOptions="actionNext"
                        android:inputType="number"
                        android:maxLength="2"
                        android:nextFocusDown="@+id/txt_faxarea_code"
                        android:padding="3dp"
                        android:singleLine="true"
                        android:textSize="18sp" />

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="5dp"
                        android:layout_marginRight="5dp"
                        android:src="@drawable/img_dash" />

                    <EditText
                        android:id="@+id/txt_faxarea_code"
                        android:layout_width="85dp"
                        android:layout_height="40dp"
                        android:background="@drawable/img_edittext_bg"
                        android:digits="1234567890"
                        android:hint="Area Code"
                        android:imeOptions="actionNext"
                        android:inputType="number"
                        android:maxLength="2"
                        android:nextFocusDown="@+id/txt_faxphone_no"
                        android:padding="3dp"
                        android:singleLine="true"
                        android:textSize="18sp" />

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="5dp"
                        android:layout_marginRight="5dp"
                        android:src="@drawable/img_dash" />

                    <EditText
                        android:id="@+id/txt_faxphone_no"
                        android:layout_width="130dp"
                        android:layout_height="40dp"
                        android:background="@drawable/img_edittext_bg"
                        android:digits="1234567890"
                        android:hint="Phone Number"
                        android:inputType="number"
                        android:maxLength="7"
                        android:padding="3dp"
                        android:singleLine="true"
                        android:textSize="18sp" />

                    <Button
                        android:id="@+id/btn_add_faxno"
                        android:layout_width="65dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="5dp"
                        android:background="@drawable/img_gray_unpress"
                        android:paddingLeft="10dp"
                        android:paddingRight="10dp"
                        android:text="@string/btn_add"
                        android:textColor="@color/black"
                        android:textSize="18sp"
                        android:textStyle="bold" />
                </TableRow>
            </TableLayout>


        </RelativeLayout>

这是我检索数据并将数据设置到editText的代码:

Cursor c_details = db_Handler.get_Institution_Details(_institutionID);
    if(c_details.getCount() != 0){
        for (c_details.moveToFirst(); !c_details.isAfterLast(); c_details.moveToNext()) {
            l_accountClassificationId = c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_ACCOUNT_CLASSIFICATION_ID));

            l_bldgName = c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_BLDG_NAME));
            l_bldgNo = c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_BLDG_LEVEL_NO));

            g_streetName = c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_STREET_NAME));
            l_streetNo =  c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_STREET_NO));
            g_barangay = c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_BBV));

            l_cityId = c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_CITY_ID));
            l_provinceId =  c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_PROVINCE_ID));

            //l_tel_1 = 

            g_zipcode = c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_ZIPCODE));
            g_cp_employee_population = c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_EMPLOYEE_POPULATION));
            l_cp_classification =  c_details.getString(c_details.getColumnIndex(Constants.INSTITUTION_EMPLOYEE_CLASSIFICATION));


            Log.i("DETAILS===========", "============================================");
            Log.i("l_accountClassificationId", l_accountClassificationId);
            Log.i("l_bldgName", l_bldgName);
            Log.i("l_bldgNo", l_bldgNo);
            Log.i("l_streetName", g_streetName);
            Log.i("l_streetNo", l_streetNo);
            Log.i("l_barangay", g_barangay);
            Log.i("l_cityId", l_cityId);
            Log.i("l_provinceId", l_provinceId);
            Log.i("l_zipcode", g_zipcode);
            Log.i("l_cp_employee_population", g_cp_employee_population);
            Log.i("l_cp_classification", l_cp_classification);

            Cursor c_provinceName = db_Handler.get_provinceName(l_provinceId);
            Cursor c_cityName = db_Handler.get_cityName(l_cityId);
            Cursor c_accountClassification = db_Handler.get_account_classification_name(l_accountClassificationId);
            if(c_provinceName.getCount() != 0){
                g_province = c_provinceName.getString(c_provinceName.getColumnIndex(Constants.PROVINCE_NAME));
            }else{

            }

            if(c_cityName.getCount() != 0){
                g_city = c_cityName.getString(c_cityName.getColumnIndex(Constants.CITY_NAME));
            }else{

            };

            int _cityPos = 0;
            int _provincePos = 0;
            int _classificationPos = 0;
            for (int i = 0; i < l_arrayListCity.size(); i++) {
                if(g_city.equals(l_arrayListCity.get(i))){
                    _cityPos = i;
                }
            }

            for (int i = 0; i < l_arrayListProvince.size(); i++) {
                if(g_province.equals(l_arrayListProvince.get(i))){
                    _provincePos = i;
                }
            }

            g_accountClassification = c_accountClassification.getString(c_accountClassification.getColumnIndex(Constants.ACCOUNT_CLASSIFICATION_NAME));

            for (int i = 0; i < l_arrayListAccountClassification.size(); i++) {
                if(g_accountClassification.equals(l_arrayListAccountClassification.get(i))){
                    _classificationPos = i;
                }
            }

            spn_acct_classification.setSelection(_classificationPos);
            txt_bldg_name.setText(l_bldgName);
            txt_bldg_no.setText(l_bldgNo);
            txt_street_name.setText(g_streetName);
            txt_street_no.setText(l_streetNo);
            txt_brgy.setText(g_barangay);
            txt_zipcode.setText(g_zipcode);
            spn_city.setSelection(_cityPos);
            spn_province.setSelection(_provincePos);
            txt_emp_population.setText(g_cp_employee_population);
            txt_classification.setText(l_cp_classification);
            txt_bldg_name.requestFocus();
        }
    }

更新:经过更多调试,我发现它没有将文本设置为 editText 的原因是微调器本身。我试图在一个按钮中调用上面显示的方法(显示所有详细信息并在editext上设置的代码)并删除 spinner.setSelection(0) 并且它工作正常。我不知道微调器中有什么东西为什么会出现这个问题。

解决方案:我通过更改其 xml 解决了该问题。删除表格布局内的 editText。我不知道为什么,但效果很好。

【问题讨论】:

  • 发布您以编程方式填写编辑文本的代码,可能是...
  • @njzk2 我已经发布了。谢谢!
  • 我假设这个txt_bldg_name.setText(l_bldgName); 设置了@+id/txt_bldg_name 编辑文本中的文本?我在您的代码中没有得到的一件事是数据库中所有值的for 循环的原因。你不想要一个吗?另外,这一切发生在哪个线程?还有其他地方可以更改此 EditText 的内容吗?
  • 是的。我做了一个循环只是为了测试一些东西。当我在微调器上为机构名称选择一个值时,就会发生这种情况,其中 editText 应该也会自动更新,但发生的是它在单击后显示该值。是的,当 spinner 的 index 为 0 时,应该清除所有 editText 并且它工作正常。
  • 这个index of the spinner is in 0 是否有可能在某个时候删除了文本?

标签: android android-layout android-edittext


【解决方案1】:

如果您通过 asynctask 在 edittext 上设置字符串,请确保首先关闭进度对话框(通常在 asynctask 的 onpost 方法上关闭),这两者之间一定存在冲突。这解决了我的问题。希望它对某些人有所帮助。 :D

【讨论】:

    猜你喜欢
    • 2012-06-16
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 2017-02-14
    相关资源
    最近更新 更多