Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android EditText setText不更新文本大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,您好.我不知道发生了什么.我在创建DialogFragment时尝试更改EditText的文本,但EditText不更新文本.
如果我调用getText().length()我注意到EditText的内容发生了变化.但是,视觉保持不变,只是空洞.

为什么?

在此先感谢大家

这是代码

public class ItemnameDialog extends DialogFragment {
    @Override
    public Dialog onCreateDialog(final Bundle bundlE) {
        System.out.println("ON CREATE DIALOG WAS CALLED");   //This appears on LogCat,so this method is called.. the problem is not that

        AlertDialog.builder builder = new AlertDialog.builder(getActivity());
        builder.settitle("Configure an item to count:");

        LayoutInflater inflater = getActivity().getLayoutInflater();

        @R_607_3868@ = inflater.inflate(R.layout.itempick_layout,null);
        builder.setView(view);

        final checkBox Box = (checkBox) view.findViewById(R.id.itemSensecheckBox);
        final EditText itemnameBox = (EditText) view.findViewById(R.id.itemnameText);
        final Spinner spinner = (Spinner) view.findViewById(R.id.itemsDefault);
        final int viewIDClicked = getArguments().geTint(clickableViewID);
        final String actualName = getArguments().getString(actualNameItemView);

        System.out.println("H - before: " + itemnameBox.getText().toString().length());    //it appears on logcat "H - before: 0"
        itemnameBox.setText(actualName);
        System.out.println("H - after: " + itemnameBox.getText().toString().length());   //it appears on logcat "H - before: 3"  so why not changing ?

        return builder.create();
    }
}

解决方法

我的问题是在该代码下面,并且在onCreateDialog方法结束之前,我有一些控制微调器的方法.
该微调器的第一项目的是“不选择任何东西”,在该项目选项中,我只是删除了该编辑文本的内容,如下所示:
@Override
public void onItemSELEcted(AdapterView<?> parent,@R_607_3868@,int pos,long id) {

if(pos == 0){
    if(editText.length() != 0 )
        editText.setText("");
}

而且我不知道在创建微调器时,它会触发事件“onItemSELEcted”,因此,每次都会删除edittext,即使我没有点击微调器的那个项目.
所以我设法通过一个简单的布尔来克服这一点.
每次onCreateDialog方法我都将布尔值设置为true,然后我的onItemSELEcted只在该bolean为false时运行.像下面的代码

@Override
public void onItemSELEcted(AdapterView<?> parent,long id) {

    if(firstGoingSpinner){
            firstGoingSpinner = false;

        }else{
            if(pos == 0){
                if(editText.length() != 0 )
                    editText.setText("");

            }else{
                editText.setText(""+parent.getItemAtPosition(pos));
                Editable etext = editText.getText();
                SELEction.setSELEction(etext,editText.length());
            }

        }
    }

我希望这有助于将来的某些人;)

大佬总结

以上是大佬教程为你收集整理的Android EditText setText不更新文本全部内容,希望文章能够帮你解决Android EditText setText不更新文本所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。