Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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
尝试拆分字符串数组列表时得到警告@NonNull String regex Android Studio Java_Java_Android_Split - Fatal编程技术网

尝试拆分字符串数组列表时得到警告@NonNull String regex Android Studio Java

尝试拆分字符串数组列表时得到警告@NonNull String regex Android Studio Java,java,android,split,Java,Android,Split,我试图从以前保存的editText中的值加载文件。在下一次加载时,我将尝试使用split将先前输入的数据填充到字段中,以获取分割后该行的所有内容,如图所示。出于某种原因,每次我尝试使用.split(“Name”)进行拆分时,引号之间的所有内容都变为黑色而不是绿色,我得到的是@NonNull public void loadList(){ loadText = new ArrayList<String>(); Context context = getAppli

我试图从以前保存的editText中的值加载文件。在下一次加载时,我将尝试使用split将先前输入的数据填充到字段中,以获取分割后该行的所有内容,如图所示。出于某种原因,每次我尝试使用.split(“Name”)进行拆分时,引号之间的所有内容都变为黑色而不是绿色,我得到的是@NonNull

    public void loadList(){
    loadText = new ArrayList<String>();
    Context context = getApplicationContext();
    File file = new File (path + "/personalProfile.txt");
    try{
        editText_name.setText("");
        editText_dob.setText("");
        editText_mobile.setText("");
        editText_journal.setText("");
        editText_medical.setText("");
        String line = "";
        FileInputStream fis = new FileInputStream(file);
        BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
        while((line = reader.readLine()) != null)
        {
            loadText.add(line);
        }public void loadList(){

        String loadedText = String.valueOf(loadText.get(0));
        String rname = "Hello: Name";
        String helloName [] = rname.split("Hello: ");
        //String nameToText [] = loadedText.split("");

        for(int i = 0; i < loadText.size(); i++){
            editText_name.setText(String.valueOf(loadText.get(0).split("Name:")));

        }
        //set all the editText values accordingly
    }catch (Exception e){
        System.out.println("Error " + e);
    }
}
public void loadList(){
loadText=newarraylist();
Context=getApplicationContext();
File File=新文件(路径+“/personalProfile.txt”);
试一试{
editText_name.setText(“”);
editText_dob.setText(“”);
editText_mobile.setText(“”);
editText_journal.setText(“”);
editText_medical.setText(“”);
字符串行=”;
FileInputStream fis=新的FileInputStream(文件);
BufferedReader reader=新的BufferedReader(新的InputStreamReader(fis));
而((line=reader.readLine())!=null)
{
loadText.add(行);
}公共无效加载列表(){
String loadedText=String.valueOf(loadText.get(0));
String rname=“Hello:Name”;
字符串helloName[]=rname.split(“Hello:”);
//字符串nameToText[]=loadedText.split(“”);
对于(int i=0;i
您输入的字符串中没有满足“Name:”的字符串

我认为,对于arraylist,您在for循环中需要的不是始终为元素0,而是:

for (int i = 0; i < loadText.size(); i++){
        editText_name.setText(String.valueOf(loadText.get(i).split("Hello: ")));

    }
并检索它们:

@Override
public void onRestoreInstanceState(Bundle in) {
    loadValues = in.getStringArrayList("loadValues");

    //call method to set values again
}

请将您的代码放在问题中。如果有助于理解警告,您可以添加图片,但警告是由代码生成的。
@NonNull
非常明确-它只是意味着传入的
字符串不能为null,即,如果您创建了字符串变量,并且有可能它没有初始化,并且您在你的
.split()
调用中使用它,那么它将不允许使用它。@ChristopherSchneider抱歉,我现在添加了它。我想说的是,我也在“private ArrayList loadText;”和“editText\u name.setText(String.valueOf(loadText.get(0));”中初始化了加载文本外部的“name:Jack Smith”例如。但一旦我输入“.split”(“Name:”)它就会变为黑色而不是绿色。@MarkKeen不,它不会,它只会像图中所示那样执行“@NonNull”操作,即使我使用“String helloName[]=rname.split”(“Hello:”);”)进行此操作,但不会变为红色,也不会在运行它时抛出错误。只会返回一个奇怪的字符串,如“[Ljava.lang.string;@1488d068”它在工具LTIP中向您显示方法参数-我无法理解您试图执行的操作,您正在拆分一个字符串,然后生成一个
string[]
-返回一个
string
-
string.valueOf()
-这将返回
string[]
对象名?只需使用
.replaceAll即可(“Name:”,“);
-之所以是这种颜色,是因为如果您遵循setText()的源代码,它需要一个
CharSequence
。顺便说一句,将相同的文本设置为数组大小的循环?即,如果数组大小为200,则将相同的文本设置200次。
for (int i = 0; i < loadText.size(); i++){
        editText_name.setText(String.valueOf(loadText.get(i).replace("Hello: ")));

    }
@Override
public void onSaveInstanceState(Bundle out) {
   out.putStringArrayList("loadValues", loadValues);
}
@Override
public void onRestoreInstanceState(Bundle in) {
    loadValues = in.getStringArrayList("loadValues");

    //call method to set values again
}