如果我向列表添加4个数据,Android不会加载列表视图

时间:2014-01-15 06:30:25

标签: android json parsing listview android-listview

目前我正在处理listview数据传递到另一个活动,当我运行它时,它第一次采取3个listview数据是bagnumber cod和ordernumber并且在我添加子编号并运行时在另一个活动中上传时工作正常然后按下获取按钮以获取列表视图,它不会加载列表

MainActivity.java

    public class MainActivity extends Activity {
        ListView list;
        TextView ver;
        TextView name;
        TextView api;
        TextView sn;
        Button Btngetdata;
        ArrayList<HashMap<String, String>> oslist = new ArrayList<HashMap<String, String>>();


        private static String url = "http://216.185.116.35/LOGISTIC/WebServices/json/getDeliveriItems_bak.ashx?id=485";

        private static final String TAG_OS = "android";

        private static final String TAG_VER = "BagNumber";
        private static final String TAG_NAME = "COD";
        private static final String TAG_API = "OrderNo";
        private static final String TAG_SON = "Subordernumber";


        JSONArray android = null;




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

            setContentView(R.layout.activity_main);
            oslist = new ArrayList<HashMap<String, String>>();



            Btngetdata = (Button)findViewById(R.id.getdata);
            Btngetdata.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View view) {
                     new JSONParse().execute();


                }
            });


        }



        private class JSONParse extends AsyncTask<String, String, JSONObject> {
             private ProgressDialog pDialog;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();

                 ver = (TextView)findViewById(R.id.vers);
                 name = (TextView)findViewById(R.id.name);
                 api = (TextView)findViewById(R.id.api);
                 sn = (TextView)findViewById(R.id.subordernumber);

                pDialog = new ProgressDialog(MainActivity.this);
                pDialog.setMessage("Getting Data ...");
                pDialog.setIndeterminate(false);
                pDialog.setCancelable(true);
                pDialog.show();



            }

            @Override
            protected JSONObject doInBackground(String... args) {

                JSONParser jParser = new JSONParser();


                JSONObject json = jParser.getJSONFromUrl(url);
                return json;
            }
            @Override
            protected void onPostExecute(JSONObject json) {
                super.onPostExecute(json); 
                pDialog.dismiss();
                try {


                      android = json.getJSONArray(TAG_OS);
                       for(int i = 0; i < android.length(); i++){
                       JSONObject c = android.getJSONObject(i);
                       String ver = c.getString(TAG_VER);
                       String name = c.getString(TAG_NAME);
                       String api = c.getString(TAG_API);
                       String Subordernumber = c.getString(TAG_SON);
                       HashMap<String, String> map = new HashMap<String, String>();
                       map.put(TAG_VER, ver);
                       map.put(TAG_NAME, name);
                       map.put(TAG_API, api);
                       map.put(TAG_SON, Subordernumber);
                       oslist.add(map);
                       }
                       } catch (JSONException e) {
                           e.printStackTrace();
                       }
                       list=(ListView)findViewById(R.id.list);
                       SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, oslist,R.layout.list_v,new String[] { TAG_VER }, new int[] {
                                       R.id.vers});
                       list.setAdapter(adapter);
                       list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                       @Override
                       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                       String ver = oslist.get(position).get(COD);
                       String name = oslist.get(position).get(TAG_NAME);
                       String api = oslist.get(position).get(TAG_API);
                       String Subordernumber = oslist.get(position).get(TAG_SON);


                       Intent intent = new Intent(MainActivity.this, YourActivity.class);
                       intent.putExtra("TAG_NAME", name);
                       intent.putExtra("TAG_API", api);
                       intent.putExtra("TAG_SON", Subordernumber);
                       startActivity(intent);

                       }
                       });
             }
        }

        }

YourActivity Class

public class YourActivity extends Activity {
    private static final String TAG_NAME = "COD";
    private static final String TAG_API = "OrderNo";
    private static final String TAG_SON = "Subordernumber";


    @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.itemlistrow); 

            Intent intent = getIntent();
            String COD = getIntent().getStringExtra(TAG_NAME); 
            String OrderNo = getIntent().getStringExtra(TAG_API);
            String Subordernumber = getIntent().getStringExtra(TAG_SON);

            TextView lblcodno = (TextView) findViewById(R.id.cod);
            TextView lblordernumber = (TextView) findViewById(R.id.ordernumber);
            TextView lblsubordernumber = (TextView) findViewById(R.id.subordernumber);

            lblsubordernumber.setText(Subordernumber);
            lblcodno.setText(COD);
            lblordernumber.setText(OrderNo);


}
}

1 个答案:

答案 0 :(得分:2)

我相信

String Subordernumber = oslist.get(position).get("TAG_SON");

应该是

String Subordernumber = oslist.get(position).get(TAG_SON);

TAG_SON周围没有引号)。