Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 字符串未存储从用户获取的edittext值_Android_String_Android Fragments - Fatal编程技术网

Android 字符串未存储从用户获取的edittext值

Android 字符串未存储从用户获取的edittext值,android,string,android-fragments,Android,String,Android Fragments,我知道问这个问题很愚蠢,但我甚至找不到下面要解决的错误,我做了所有应该做的事情,但它不会将字符串值存储在字符串名称中我正在我的片段中实现EditText并将值存储在字符串中但值不会存储在字符串中。据我所知,我做的每件事都是正确的,但这件事根本不起作用 在onCreateView中,我正在执行以下代码: EditText av i= (EditText) v.findViewById(R.id.nameAndroid); String name = avi.getText().toString()

我知道问这个问题很愚蠢,但我甚至找不到下面要解决的错误,我做了所有应该做的事情,但它不会将字符串值存储在
字符串名称中
我正在我的
片段中实现
EditText
并将值存储在
字符串中
但值不会存储在
字符串中。据我所知,我做的每件事都是正确的,但这件事根本不起作用

onCreateView
中,我正在执行以下代码:

EditText av i= (EditText) v.findViewById(R.id.nameAndroid);
String name = avi.getText().toString();
我正在执行一个操作,检查用户是否输入了任何基于字符串的内容,然后我将让它执行另一部分代码,以使用以下代码对输入的
字符串执行操作:

if(name.matches("")){
    Log.i(TAG, "input is empty");
} else{
    //code
}

但是每次我得到日志时,输入是空的并且字符串没有存储值。。。我在这里找不到错误。。我做错了什么?
EditText
getText()
在调用时为您提供了
EditText
的内容,因此您必须调用
name=avi.getText().toString()
当此“操作”发生时,不在
onCreateView
中,或者此时它将只存储
EditText
的字符串值。

EditText
getText()
getText()在调用时为您提供
EditText
的内容,因此您必须调用
name=avi.getText().toString()
当此“操作”发生时,不在
onCreateView中,或者此时它只存储
EditText
的字符串值。

在这里,您将在检索空的EditText之后保存它。您必须在编辑文本上添加一个侦听器,以便在编辑时查看

使用TextWatcher:


在这里,您将在检索空的EditText之后保存它。您必须在编辑文本上添加一个侦听器,以便在编辑时查看

使用TextWatcher:


现在在onCreateView中保存EditText的值还为时过早——它刚刚创建,用户甚至还没有看到它

你有两种方法:

a。如果您有一个按钮(用户输入数据并单击按钮),则在
onClick
方法中添加如下内容:

    Editable e = yourEditText.getText();
    String string = "";
    if (e != null) string = e.toString();
b。如果没有按钮,可以添加:

请注意,您应该在用户输入值后保存该值,而onCreateView用户甚至还没有看到该视图。在一个案例中,用户单击按钮,然后验证他是否在字段中输入了内容。在b种情况下,我们观察字段中的更改,因此只有在有需要保存的内容时才保存值


您可以在用户返回/更改屏幕时保存该值,例如在onPause中。

在onCreateView中保存EditText的值还为时过早-它刚刚创建,用户甚至还没有看到它

你有两种方法:

a。如果您有一个按钮(用户输入数据并单击按钮),则在
onClick
方法中添加如下内容:

    Editable e = yourEditText.getText();
    String string = "";
    if (e != null) string = e.toString();
b。如果没有按钮,可以添加:

请注意,您应该在用户输入值后保存该值,而onCreateView用户甚至还没有看到该视图。在一个案例中,用户单击按钮,然后验证他是否在字段中输入了内容。在b种情况下,我们观察字段中的更改,因此只有在有需要保存的内容时才保存值


您可以在用户返回/更改屏幕时保存该值,例如在onPause中。

尝试以下操作:if(speed.isEmpty()){…}else{…},您应该将其放在按钮单击中,例如,因为现在它只发生在oncreate中。没有检查条件可以正常工作,因为我已经在某个activity类中使用了相同的条件。。。。我面临的问题是,字符串没有被存储。请尝试这样做:if(speed.isEmpty()){…}else{…},您应该将它放在按钮单击中,例如,因为现在它只发生在oncreate中。没有检查条件可以正常工作,因为我已经在一个activity类中使用了相同的条件。。。。我面临的问题是,字符串没有被存储在哪里,那么我该称它为?在oncreateview中,我调用edittxt并获取用户输入并将其分配给StringView,然后在哪里调用它?在oncreateview中,我调用edittxt并获取用户输入并将其分配给stringcan不能只是将值直接存储为活动的值,因为我们可以在一行中执行步骤,而thins将消耗空间。您可以在onPause中保存值:)我可以在onViewCreated中执行吗?否。在onViewCreated中,视图是仅创建,甚至未向用户显示。它在onCreateView之后立即调用,但用户尚未输入任何内容。您应该在用户输入文本后执行。不能将值直接存储为活动的值,因为我们可以在一行中执行步骤,而thins将占用空间。您可以将值保存在onPause中,然后:)我可以在onViewCreated中执行吗?否。在onViewCreated仅创建视图,甚至不向用户显示。它在onCreateView之后立即调用,但用户尚未输入任何内容。您应该在用户输入文本后执行此操作。
    yourEditText.addTextChangedListener(new TextWatcher() {
    @Override
    public void afterTextChanged(Editable s) {
       Editable e = yourEditText.getText();
       String string = "";
       if (e != null) string = e.toString();
    }

    @Override    
    public void beforeTextChanged(CharSequence s, int start,
     int count, int after) {
       }

    @Override    
    public void onTextChanged(CharSequence s, int start,
     int before, int count) {
    }
    });