Android ListView 中的 JSONArray

2024-06-23

urlHi 我有这段代码,可以从 php 页面接收数据,我想将该数据放入列表视图中。我收到该数据,并且通过 system.out.println 看到了该数据,但列表视图中有白行。代码:

public class Utenti extends ListActivity {


ListView lv;
    
ListView listView;

static String temp;
    //ListAdapter adapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    

    
           
        
          
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    
      StrictMode.setThreadPolicy(policy);
      
    


lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        

        }
    });

     
      

      
      Thread t = new Thread(new Runnable (){

          public void run() {
              //Looper.prepare();
              JSONObject json =conn("ketut.php");

              try {
                  //Get the element that holds the earthquakes ( JSONArray )
                  JSONArray  ute = json.getJSONArray("success");
                  final List<HashMap<String, String>> mylist = 
                          new ArrayList<HashMap<String, String>>();
                  HashMap<String, String> map = new HashMap<String, String>();
                     for(int i=0;i < ute.length();i++){

                      JSONObject e = ute.getJSONObject(i);
                       System.out.println(e.getString("user"));

                      
                      
                       map.put("name",  e.getString("user"));
                       
                      
                     
                       mylist.add(map);
                  }

                     runOnUiThread(new Runnable() {


                         public void run() {

                          ListAdapter adapter = new SimpleAdapter(Utenti.this, mylist , R.layout.utentii,new String[] { "name" },new int[] { 1});
                          Utenti.this.setListAdapter(adapter);
                          }

                      });

              } catch (JSONException e) {
                  System.out.println("4");
                  e.printStackTrace();
              }

          }
      });
              t.start();
        //  t.start();  
      

     


        

}


public  static JSONObject conn(String pagina){
    HttpURLConnection connection;
    OutputStreamWriter request = null;
    URL url = null;
    String response = null;
    JSONObject jArray = null;
    

    try
        {
            url = new URL("url"+pagina);
            connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            connection.setRequestMethod("POST");

            
            String line = "";

            InputStreamReader isr = new InputStreamReader(connection.getInputStream());
            BufferedReader reader = new BufferedReader(isr);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null)
            {
                sb.append(line + "\n");
            }
            response = sb.toString();
            System.out.println(response);
            try{jArray=new JSONObject (response);}
            catch(JSONException e){}
            
            isr.close();
            reader.close(); 
        }
        catch(IOException e)
        {
            Log.i("NetworkTest","Network Error: " + e);
        }
    return jArray;
}}

utentii.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="20sp" >

问题的图像 http://img854.imageshack.us/img854/6540/rowsa.jpg


不。 runOnUiThread() 是必要的,因为你想调用setListAdapter.

再次。 - 移动这两行

ListAdapter adapter = new SimpleAdapter(Utenti.this, mylist , R.layout.utentii,new String[] { "name" },new int[] { 1});
setListAdapter(adapter);

就在之后for(){}循环中onClick() method.

如果您确定您的mylist列表中填充有 json 调用中的数据。

基本上是这样的样本:

将 xml 文件内容替换为以下内容:

测试.xml

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" /> 

对于 ListView 的行

row.xml

 <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/textView" android:layout_gravity="center"/>
</LinearLayout>

然后是 onCreate():

  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.test);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

        StrictMode.setThreadPolicy(policy);

        ListView lv = getListView();
        populateListView();

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                populateListView();
            }
        });

    }

    private void populateListView(){

        Thread t = new Thread(new Runnable (){

            public void run() {

                JSONObject json = getUserObject("http://myhost:8080/login/email");
                Log.i("json",json.toString());

                try {
                    //Get the element that holds the earthquakes ( JSONArray )
                    JSONArray friends = json.getJSONObject("user").getJSONArray("friends");

                    final List<Map<String, String>> mylist =
                            new ArrayList<Map<String, String>>();

                    //get list of friend ids in the user object
                    for(int i=0;i < friends.length();i++){
                        Map<String,String> map = new LinkedHashMap<String, String>();
                        map.put("friendid", friends.getString(i));
                        mylist.add(map);

                    }
                    runOnUiThread(new Runnable() {
                        public void run() {
                            ListAdapter adapter = new SimpleAdapter(MyTestListActivity.this, mylist , R.layout.row,new String[] { "friendid" },new int[] {R.id.textView});
                            setListAdapter(adapter);
                        }
                    });

                } catch (JSONException e) {
                    System.out.println("4");
                    e.printStackTrace();
                }

            }
        });
        t.start();

    }

    public  static JSONObject getUserObject(String page){

        JSONObject jArray = null;

        try
        {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(page);

            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("user", "test"));
            nameValuePairs.add(new BasicNameValuePair("pwd", "test"));

            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            String str = EntityUtils.toString(response.getEntity(), HTTP.UTF_8);
            try{
                jArray=new JSONObject (str);}
            catch(JSONException e){Log.d("error",e);}    

        }
        catch(Exception e)
        {
            Log.i("NetworkTest", "Network Error: " + e);
        }
        return jArray;
    }

希望这个对你有帮助。

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

Android ListView 中的 JSONArray 的相关文章

  • 一部又一部的Android动画

    我在 TextView 上有两个 TranslateAnimations 我希望它们一个接一个地执行 但是 通过使用下面的代码 仅执行第二个代码 我该如何解决这个问题 TranslateAnimation animation new Tra
  • 无法绑定到调试器的本地 XXXX

    我不断得到Can t bind to local XXXX for debugger控制台中的消息 但不适用于 1 个端口 适用于所有随机端口 我已经完成了中所述的操作这个问题 https stackoverflow com questio
  • 域不包含在应用程序域中

    我几天来就遇到了这个问题 以前它运行得很好 但现在显示了上述错误 我无法找出我缺少的内容 如何解决这个问题 image setting image 的一部分费率审查 public static String BASE DOMAIN http
  • 将长文本分成页面供viewpager使用

    我正在实施中的messureText方法这个问题 https stackoverflow com a 22199847 3930169在 viewpager 中渲染之前将长文本分成指定大小的页面 我正在使用增量字符数进行 while 循环以
  • 如何限制可以选中的复选框数量? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 覆盖服务 - 按下返回按钮

    我怎样才能做到这一点 目前的解决方案 我启动了一个透明的活动 捕获后按 将其转发到我的服务 然后自行关闭 但此活动将在当前正在运行的活动中可见 因此这不是一个非常漂亮的解决方案 看到的解决方案 我见过一个应用程序确实可以捕获服务中的后按 而
  • 如何在 C# 中将二维数组转换为二维列表

    我有一个二维字符串数组 我想把它转换成 List
  • 有没有办法获取 JList 中的所有元素?

    我想知道是否有一种方法可以检索已添加到 JList 的所有元素的列表 例如 我希望 JList 从自定义单元格渲染器返回字符串或 JLabels 的数组或列表 您可以使用getModel http docs oracle com javas
  • 如何创建像Foursquare兴趣选择屏幕一样的gridview?

    我正在创建一个应用程序 要求用户选择多个兴趣 我正在尝试创建一个类似于 Foursquare 兴趣选择的屏幕类似于标签云其中可以选择多个按钮来代表用户的兴趣 我尝试创建一个 gridview 但无法实现按钮换行到下一行的效果 有没有办法通过
  • 无法分派 DDM 块 46454154:未定义处理程序 - Eclipse - Android SDK

    我正在 Windows 7 64 位机器上工作 刚刚下载并安装了 Android SDK 并且正在使用带有 Android 插件的 Eclipse 我刚刚浏览了 Hello Android 指南 你好 安卓 http developer a
  • 问题:将大数据传递给第二个 Activity

    我有一个奇怪的问题 我在网上浏览但没有找到答案 我仍然是android编程的初学者 那么让我们开始吧 我想做的就是用一些数据调用第二个活动 它适用于小数据 但如果数据变大 第二个 Activity 将不会显示 第一个 Activity 将完
  • 在 json 对象中执行 javascript 代码?

    有远吗 所以像这样 key1 val1 key2 val2 some code document getElementById someid innerHTML test 那么 some code 会在没有任何用户干预的情况下执行吗 No
  • 如何从内存中清除动态创建的视图?

    我试图从记忆中清除一些观点 情况是这样的 我有一个活动 我将其称为 A 另一个称为 B 现在 我在 Activity A 中按下一个按钮 该按钮调用 Activity B 动态创建大量视图 之后 我按后退按钮返回到活动 A 多次重复这两个步
  • android项目中视频文件放在哪里

    我有一个视频 我需要知道放置在哪里以及如何获取该视频的路径 我知道如何从 URL 添加视频 Uri uri Uri parse www abc com myVid mp4 videoView VideoView findViewById R
  • RecyclerView:调整项目大小的动画

    我有一个RecyclerView 回收者视图的每个项目都可以展开或不展开 同一时间只能展开一项 本质上 我试图在棒棒糖拨号器中重新创建历史列表 我发现在 RecyclerView 上使用 LayoutTransition https sta
  • 如何循环遍历列表中除最后一项之外的所有项? [复制]

    这个问题在这里已经有答案了 Using a for循环 如何循环遍历列表中除最后一项之外的所有项 我想遍历一个列表 检查每个项目与后面的项目 我可以在不使用索引的情况下做到这一点吗 for x in y 1 If y是一个生成器 那么上面的
  • 从Python列表中挑选出具有特定索引的项目

    我确信在 Python 中有一种很好的方法可以做到这一点 但我对这门语言还很陌生 所以如果这是一个简单的方法 请原谅我 我有一个列表 我想从该列表中挑选某些值 我想要挑选的值是列表中索引在另一个列表中指定的值 例如 indexes 2 4
  • 如何在 Android 键盘中包含建议

    我正在开发 Android 软键盘 我已经创建了键盘布局 但不知道如何包含在 EditText 中键入一些单词时出现的建议 例如 如果我写 在 中 已知 和 已知 将显示在建议中 所以我的问题是 1 如何在 Android 软键盘中包含建议
  • 将文本文件写入 SD 卡失败

    我遇到了一个奇怪的问题 我的应用程序可以将一个简单的文本文件写入 SD 卡 有时它对某些人有效 但对其他人无效 我不知道为什么 对于某些人来说 如果他们输入一些字符 例如 在文件等中 我似乎无法重现它 因为我没有遇到任何麻烦 但这是处理文件
  • 将我的应用程序添加到“添加快捷方式”列表,以便在主屏幕上有快捷方式

    如您所知 当您长按主屏幕时 手机会显示列表菜单 您可以添加快捷方式 小部件 文件夹等 我希望我的应用程序位于快捷方式列表中 我怎样才能做到这一点 快捷方式自 API 级别 1 起就已存在 并且也可由 3rd 方应用程序使用 要将活动添加到快

随机推荐

  • 将数据保存到 iOS 的最佳方式?

    在我的应用程序 iOS 5 中 我想保存数据 我想节省债务 所以就是 加或减钱 金额 以及有债务的人的姓名 或您有债务的人的姓名 但我不知道如何保存数据 NSUserdefaults Core data SQLite 也许你可以告诉我拯救他
  • WebClient 上的 Exchange() 会抛出哪些异常?

    我已经实现了一个服务 它使 ReST 调用其他服务来实现其部分功能 我正在使用反应式WebClient为此 类似 webClient post uri contentType accept header syncBody someReque
  • 处理续集迁移和初始化的工作流程?

    我不明白续集迁移工作流程是如何工作的 我有一个新建项目 数据库是使用 SQL 脚本设计的 我们用了sequelize auto之后生成模型 我现在需要生成一个迁移文件 以便我可以运行 CLI 来运行 SQL 查询 为本地配置的数据库创建包含
  • 操作系统如何选择正确的 ico/favicon 大小?

    基于此 stackoverflow 讨论 https stackoverflow com questions 1526747 ideal size for ico 可以在单个文件中提供各种大小 并且 操作系统将选择最好的一个来显示 这是如何
  • mod_rewrite 仅适用于 GET

    这是一个不太可能的事情 但我希望找到一个简单的解决方法来解决一个奇怪的错误 该错误仅在应用程序省略 推断查询字符串时才会出现 在深入研究一千行缩小的第三方 javascript 之前 我想了解是否可以使用 mod rewrite 自动应用查
  • 如何使用 python 查找 iframe 中按钮的 XPath?

    我在 iframe 中有以下 html 对象 提交 按钮的 html 代码 https i stack imgur com pe3rZ png 我需要找到它的 XPath 才能单击 提交 按钮 但找不到它 XPath 助手仅显示 ifram
  • 使用 Tomcat 的外部 LDAP JNDI 连接

    我想知道如何使用 TOMCAT 中的 JNDI 配置连接外部 LDAP 我的代码是这样的 try InitialContext iniCtx new InitialContext ctx LdapContext iniCtx lookup
  • 如何使用纸对话高分子元件?

    我通过添加开始和结束标签来使用该元素
  • pymssql 包不适用于 aws 中的 lambda

    我们如何为 lambda 创建 pymssql 包 我尝试使用创建它 pip install pymssql t 当我运行 lambda 函数时 它抱怨说 无法导入模块 lambda function 没有名为 lambda functio
  • 如何在 SwiftUI 中实现触发 switch case 的左或右 DragGesture() ?

    我在视图中创建了一个 DragGesture 无论用户向左还是向右滑动 它都应该选择 State Bool 问题是只检测到向右滑动 如何使用 gesture 捕获用户在屏幕上向左还是向右滑动 import SwiftUI struct Sw
  • 为什么要给伪元素添加块级别?

    从本页的代码 http css tricks com snippets css sticky footer http css tricks com snippets css sticky footer page wrap min heigh
  • 视图和表在性能上的差异

    对于包含大量数据的表来说什么是最好的 我有一个存储过程 可以根据一些过滤器创建报告 在我的 SP 中 我读取表格并放入所有内部联接和公式 然后在放置过滤器的 where 条件中 谈论性能什么更好 创建一个包含所有联接的视图或读取表 就像我正
  • 无法在静态方法中创建静态变量?

    为什么这不起作用 public static int GetListOfAllDaysForMonths static int MonthDays new int 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  • 从 Angular 2 中的 FileReader 获取值

    我有以下组件加载文件并将其内容绑定为字符串 export class NgCsvComponent Input csv any Output csvChange any new EventEmitter public localCsv an
  • 如何隐藏 UITableViewCells 同时不违反自动布局约束

    我目前正在开发一个应用程序来学习 iOS 编程和 Swift 我有一个视图 其中包含两个主要子视图 一个 MKMapView 和一个 UITableView 当在 MapView 中选择某个注释时 我希望隐藏 TableView 中的某些单
  • 形状图裁剪/截断特征名称

    import csv import pandas as pd import numpy as np from matplotlib import pyplot import shap from sklearn import preproce
  • 用字典中的值替换列表中的单词

    我正在尝试创建一个简单的程序 让您输入一个句子 然后将其分割成单个单词 另存为splitline 例如 the man lives in a house 每个单词将与一个字典进行匹配 该字典包含针对以下值存储的多个单词 mydict the
  • 当页面更改时,如何刷新/重新加载 Polymer 元素?

    我创建了一些自定义元素 当他们准备好时 由ready 他们开始从 API 下载 JSON 数据 并显示给用户 想要在单页应用程序中使用它们 并在数据可见时下载数据 现在 它首先下载所有页面的所有数据 因为我使用了ready event 是否
  • JavaScript 上的 String.ToCharArray() 等效吗?

    我正在尝试找到一种在 JavaScript 上为每个字符分割字符串的方法 相当于String ToCharArray from c 稍后用逗号将它们连接起来 ex 012345 分割后 gt 0 1 2 3 4 5 加入后 gt 0 1 2
  • Android ListView 中的 JSONArray

    urlHi 我有这段代码 可以从 php 页面接收数据 我想将该数据放入列表视图中 我收到该数据 并且通过 system out println 看到了该数据 但列表视图中有白行 代码 public class Utenti extends