Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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 解析字符串并将所有数据库值打印到textview_Android_Xml_Textview - Fatal编程技术网

Android 解析字符串并将所有数据库值打印到textview

Android 解析字符串并将所有数据库值打印到textview,android,xml,textview,Android,Xml,Textview,我正在尝试根据输入到SQLite数据库的值为我的android应用程序的文本上色。我已经设置了3个文本视图,并为所有这些设置了不同的文本颜色 代码如下所示 String arr[] = data.split("..\n\n"); for(int i = 0; i < arr.length; i++) { System.out.println("arr["+i+"] = " + arr[i].trim()); if(arr[i].contains("High Severit

我正在尝试根据输入到
SQLite
数据库的值为我的android应用程序的文本上色。我已经设置了3个
文本视图
,并为所有这些设置了不同的文本颜色

代码如下所示

String arr[] = data.split("..\n\n");
for(int i = 0; i < arr.length; i++)
{
    System.out.println("arr["+i+"] = " + arr[i].trim());

    if(arr[i].contains("High Severity"))
    {
       // String highArr = arr[i];
        textView.setVisibility(View.VISIBLE);
        textView.setText(highArr+"\n");
        textView.setTextColor(Color.RED);
    }
    else if(arr[i].contains("Low Severity"))
    {
        textView3.setVisibility(View.VISIBLE);
        textView3.setText(arr[i]+"\n");
        textView3.setTextColor(Color.GREEN);
    }
    else if(arr[i].contains("Medium Severity"))
    {
        textView2.setVisibility(View.VISIBLE);
        textView2.setText(arr[i]+"\n");
        textView2.setTextColor(Color.rgb(255, 136, 0));
    }

}
String arr[]=data.split(“..\n\n”);
对于(int i=0;i

我已经解析了包含数据库表所有值的字符串,但是当我尝试for循环时,它只打印出最新输入的值

看起来您的arr[]可能只有一个条目。您应该使用调试器查看循环实际运行的次数以及数组的实际长度

编辑:


我刚意识到你只有三个文本视图。当然,textview显示的是最后一个,因为每次调用settext方法都会重置文本。有几种方法可以做你正在尝试的事情,但我不确定你的应用程序是如何设置的。您应该尝试动态创建textview,将文本设置为它,然后将该textview添加到已设置的linearlayout或relativelayout中。或者,您也可以在listview中使用baseadapter或任何其他适配器的自定义实现来完成此操作,具体取决于您的需要。

我会这样更改代码:

String arr[] = data.split("..\n\n");
String Hseverity = "", Mseverity = "", Lseverity = "";
for(int i = 0; i < arr.length; i++)
{
    System.out.println("arr["+i+"] = " + arr[i].trim());

    if(arr[i].contains("High Severity"))
    {
       // String highArr = arr[i];
        textView.setVisibility(View.VISIBLE);
        Hseverity += arr[i] +"\n";
        textView.setText(Hseverity);//do this to save each High Severity entry
        //same for the other severity levels
        textView.setTextColor(Color.RED);
    }
    else if(arr[i].contains("Low Severity"))
    {
        textView3.setVisibility(View.VISIBLE);
        Lseverity += arr[i]+"\n";
        textView3.setText(Lseverity);
        textView3.setTextColor(Color.GREEN);
    }
    else if(arr[i].contains("Medium Severity"))
    {
        textView2.setVisibility(View.VISIBLE);
        Mseverity += arr[i] + "\n";
        textView2.setText(Mseverity);
        textView2.setTextColor(Color.rgb(255, 136, 0));
    }

}
String arr[]=data.split(“..\n\n”);
字符串Hseverity=“”,Mseverity=“”,Lseverity=“”;
对于(int i=0;i
从logcat中,我看到arr[]确实保存了我数据库的所有值,但只有最近的值被打印到屏幕上。。。logcat最多显示[13]个值。请尝试将arr[i]处的字符串值设置为临时变量,以便进行调试并查看其实际值。这可能是你和一个你没有的值的比较。非常感谢,我现在就从列表视图开始!