使用 JSON 字符串填充表布局

2023-12-31

我的 Web 服务返回一个 JSON 字符串,如下所示:

{"checkrecord"[{"rollno":"abc2","percentage":40,"attended":12,"missed":34}],"Table1":[]}

上面的字符串代表我的数据集。我已将字符串转换为 JSON 对象,现在我想将字符串中的数据放入 TableLayout 中。

我希望表格在 Android 应用程序上显示时如下所示:

    rollno       percentage    attended    missed
     abc2          40              12        34

这是我现在使用的代码:

    //json processing code

 public void jsonprocessing(String c)
   {
       try 
       {

       JSONObject jsonobject = new JSONObject(c);

       JSONArray array = jsonobject.getJSONArray("checkrecord");

        int max = array.length();

       for (int j = 0; j < max; j++)
       {

    JSONObject obj = array.getJSONObject(j);
    JSONArray names = obj.names();

    for (int k = 0; k < names.length(); k++) 
        {
             name = names.getString(k);
            value= obj.getString(name);
               createtableLayout();  

        }


       }     

     } 

  catch (JSONException e)           
   {                
      // TODO Auto-generated catch block
    e.printStackTrace();        
}

 }

//create table layout
public void createtableLayout()
{

     Log.d("values",value); //I am able to see the values abc2,40,12 and 34 over  here in logcat  
     TableLayout t= (TableLayout)findViewById(R.id.tablelayout);
         TableRow r1=new TableRow(this);
         r1.setLayoutParams(new LayoutParams(
         LayoutParams.FILL_PARENT,
         LayoutParams.WRAP_CONTENT));    
         TextView t1 = new TextView(this);
         t1.setText(value);
         t1.setTextColor(Color.BLACK);
         t1.setLayoutParams(new LayoutParams(
             LayoutParams.FILL_PARENT,
             LayoutParams.WRAP_CONTENT));
         r1.addView(t1);
         t.addView(r1, new TableLayout.LayoutParams( LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

 }

我的 TableLayout 包含一个按钮和一个 EditText 作为第一个 TableRow。单击按钮后,我得到 JSON 字符串。所以我需要根据我的要求动态插入 2 个 TableRows。

我现在的xml如下:

   <?xml version="1.0" encoding="utf-8"?>
   <TableLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tablelayout"
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"
        android:background="#000044">
   <TableRow> 

   <EditText 
        android:id="@+id/edittext" 
        android:width="200px" />

   <Button 
        android:id="@+id/button" 
        android:text="Check Record"/>

   </TableRow> 

   </TableLayout>

所以我的问题是如何添加这 2 个额外的 TableRows 以便用字符串值填充它们?

我的代码不能正常工作。我无法获得所需的输出。

有人能帮我吗?

Thanks


您可以使用多列列表视图来达到您的目的,

解析 JSON 响应并将值获取到不同的字符串中,然后使用此博客来实现您的目的

多列列表视图 http://www.heikkitoivonen.net/blog/2009/02/15/multicolumn-listview-in-android/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JSON 字符串填充表布局 的相关文章

随机推荐

  • Windows 中公钥和私钥容器的位置?

    我尝试使用以下代码将我的公钥和私钥存储在容器中 CspParameters cp new CspParameters cp KeyContainerName Test RSACryptoServiceProvider rsa new RSA
  • 为什么将函数参数标记为易失性

    我目前正在阅读PostgreSQL https github com postgres postgres代码 以下是缓冲区管理器的摘录 static void WaitIO volatile BufferDesc buf static bo
  • 尽管 Oracle.DataAccess.dll 安装在 GAC 中,但它未显示在资源管理器中

    有谁知道为什么我的 Oracle DataAccess dll 版本 4 程序集未显示在资源管理器视图中 它已安装在 GAC 中并且运行没有任何问题 gacutil按预期显示 C Program Files x86 Microsoft Vi
  • OpenGL C# (OpenTK) 加载和绘制图像功能不起作用

    我正在尝试在屏幕上加载并显示纹理 但是我收到了一个黑框 它应该显示在其中 两个主要方法是 LoadTexture 和 Draw Image 我假设错误在于其中之一 using System using System Diagnostics
  • stdClass 对象和 foreach 循环

    我正在使用以下代码通过 Soap 从网站获取数据 client new SoapClient http some url here class SMSParam public CellNumber public AccountKey pub
  • 如何在 JFreeChart 中将点转换为线?

    我在将 JFreeChart 生成的点转换为线时遇到问题 首先 有一些资料确实帮助我达到了这一点 使用 JfreeChart 动态向 XYSeries 添加点 https stackoverflow com questions 720574
  • Tomcat gzip while chunked 问题

    我的一项数据源服务遇到了一些问题 正如 HTTP 响应标头中所述 它在 Apache Coyote 1 1 上运行 服务器给出带有 Transfer Encoding chunked 的响应 这里是示例响应 HTTP 1 1 200 OK
  • 为什么 Ajax 脚本无法在 IIS 7.5 Win 2008 R2 服务器上运行?

    我有一个 Web 应用程序在我的开发服务器上的 VS 2013 上运行良好 但是一旦我将其发布到 IIS 7 5 2008 R2 服务器上 位于我的自定义脚本文件中的 Ajax 脚本就不再工作了 尽管其他 JQuery 脚本不调用 Ajax
  • Monotouch/WCF:如何在不使用 svcutil 的情况下使用 wcf 服务

    由于monotouch编译为本机代码 因此它有一些限制 例如不允许动态调用 但我在 net中有很多类 我使用 ChannelFactory 动态来调用 wcf 服务 new ChannelFactory myBinding myEndpoi
  • 如何以编程方式拦截 GC 以将信息打印到我的日志中

    我知道您可以使用 verbosegc 将有关 GC 的信息打印到 sysout 但我不希望这样做 我想在 GC 触发时进行拦截 并将有关它的信息打印到我的自定义记录器 也许将最后一次 GC 时间戳保存在内部变量上 等等 这里还有希望吗 您无
  • 单击地图时关闭信息框

    我正在使用 Google Maps V3 API 的 Infobox 插件 http google maps utility library v3 googlecode com svn trunk infobox docs referenc
  • Visual Studio 2013,TFS 非常慢

    当我最初安装 VS Ultimate 2013 时 一切都很好 但在上个月左右的时间里 它一直很糟糕 我的 Visual Studio 2013 安装中的源代码管理浏览非常慢 只需单击一个节点 显示该节点内容的操作就需要 20 多秒 团队中
  • 从sql plus中的字符串中删除最后一个字符

    我试图从 sql plus 的列输出中删除最后一个字符 列条目的长度不固定 例如 XYZA 应输出为 XYZ 我尝试过使用substr 功能 但似乎不起作用 SUBSTR ooo CO NAME 1 LENGTH ooo CO NAME 1
  • 如何使用 sed 命令在模式字符串之前添加字符串?

    我想使用 sed 修改名为 baz 的文件 当我搜索模式 foo 时 foo 不在行首或行尾 我想在 foo 之前附加 bar 我该如何使用 sed 来做到这一点 Input file named baz blah foo blahblah
  • 在 flutter 中通过 Function(T) 传递泛型类型

    我正在尝试创建一个通用的消费者小部件 以方便其子视图模型 因此我有两个功能 一个在 ViewModel 初始化之后有一个函数 T 另一个用于将模型传递给它的子 Widget 通用类中是 ChangeNotifier 的子级 在我想在两个函数
  • 带有 ActionBarSherlock 的本机 ActionBar selectableItemBackground

    我尝试更改操作栏中所选项目的背景 我使用 ActionBarSherlock 来与旧版 Android 版本兼容 当应用程序在带有 ICS 的设备上运行时 我为我的 Activity 设置了特定主题 这是我目前的风格
  • 变换所有子视图

    我在滚动视图中有一个 UIView 其中包含大约 100 个子视图 子视图看起来都一样 并且是同一类的实例 我有一个要应用于每个子视图的转换 但每次 ZoomScale 改变时 变换都需要改变 将变换应用于所有视图的最佳方法是什么 目前我正
  • 更改 IOS Xamarin Forms 中的开关颜色

    如何在切换 IOS Xamarin Forms 时更改切换按钮的颜色 自定义渲染将仅设置颜色一次 Xamarin 表单切换按钮在 IOS 上的默认颜色 https stackoverflow com questions 38993959 x
  • 如何限制bash中函数中使用的线程/子进程的数量

    我的问题是如何更改此代码 使其仅使用 4 个线程 子进程 TESTS a b c d e for f in TESTS do t RANDOM 5 1 sleep t echo f t done wait 有趣的问题 我尝试使用 xargs
  • 使用 JSON 字符串填充表布局

    我的 Web 服务返回一个 JSON 字符串 如下所示 checkrecord rollno abc2 percentage 40 attended 12 missed 34 Table1 上面的字符串代表我的数据集 我已将字符串转换为 J