簡體   English   中英

在Android中創建廣告視圖

[英]Create Advertisement View In Android

我已經創建了一個應用程序。 在此應用程序中有一個廣告模塊。 該模塊分為兩部分:

  1. 制作廣告
  2. 查看廣告

模塊一工作正常。 創建廣告並填充參數(例如namemobilestate )並添加add描述后,單擊send按鈕將創建廣告並將值存儲在數據庫中。 該值以JSON格式存儲。

但是,當我單擊vies廣告時,日志貓中顯示以下錯誤。 請檢查代碼,並告訴我哪里錯了。

    07-07 04:32:12.643: W/System.err(3306):    org.json.JSONException: No value for all_advertisements
    07-07 04:32:12.653: W/System.err(3306):     at org.json.JSONObject.get(JSONObject.java:355)
    07-07 04:32:12.653: W/System.err(3306):     at org.json.JSONObject.getJSONArray(JSONObject.java:549)
    07-07 04:32:12.653: W/System.err(3306):     at com.sunmobileappnow.mobileappnow.ViewAdvertise$ViewAdvertisement.doInBackground(ViewAdvertise.java:99)
    07-07 04:32:12.653: W/System.err(3306):     at com.sunmobileappnow.mobileappnow.ViewAdvertise$ViewAdvertisement.doInBackground(ViewAdvertise.java:1)
    07-07 04:32:12.653: W/System.err(3306):     at android.os.AsyncTask$2.call(AsyncTask.java:288)
    07-07 04:32:12.653: W/System.err(3306):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    07-07 04:32:12.653: W/System.err(3306):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    07-07 04:32:12.653: W/System.err(3306):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    07-07 04:32:12.663: W/System.err(3306):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    07-07 04:32:12.663: W/System.err(3306):     at java.lang.Thread.run(Thread.java:841)


This is my view advertisement `.java` file. In this file I have defined the four `TextView`s which displays the name, mobile, (for those we want to send the add) states (selection of the state for which add is broadcast),and description of the advertisement.

`View_add` is the method used in the web services.login_token and `status_keys` is the parameter.

          public class ViewAdvertise extends Activity {

                private SharedPreferences pref;
                private String login_token;
                private TextView tv1,tv2,tv3,tv4;
                ListView list ;
                ArrayList<String> nameArray = new ArrayList<String>();
                ArrayList<String> mobileArray = new ArrayList<String>();
                ArrayList<String> stateArray = new ArrayList<String>();
                ArrayList<String> descArray = new ArrayList<String>();
                ArrayAdapter<String> adapter ;

                //ArrayList<HashMap<String, String>> adsArray = new ArrayList<HashMap<String,String>>();

                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.view_ads);
                    pref=this.getSharedPreferences("Driver", MODE_WORLD_READABLE);
                    login_token = pref.getString("login_token","login_token"); 
                    list=(ListView) findViewById(R.id.list);   
                    tv1=(TextView) findViewById(R.id.text2);
                    tv2=(TextView) findViewById(R.id.text4);
                    tv3=(TextView) findViewById(R.id.text5);
                    tv4=(TextView) findViewById(R.id.text6);
                    new ViewAdvertisement().execute();

                }
                private class ViewAdvertisement extends AsyncTask<String, String, String[]> {
                    String mname,mobile,state,desc;

                    @Override
                    protected String[] doInBackground(final String... params) 
                    {
                        ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
                        if (conMgr.getActiveNetworkInfo() != null
                                && conMgr.getActiveNetworkInfo().isAvailable()
                                && conMgr.getActiveNetworkInfo().isConnected()) 
                        {
                            HttpClient httpclient = new DefaultHttpClient();
                            JSONObject job1= new JSONObject();
                            try 
                            {
                                job1.put("status_key","0");
                                job1.put("method", "view_add");
                                job1.put("login_token", login_token);

                                StringEntity se = new StringEntity(job1.toString());

                                //HttpPost httppost = new HttpPost("http://suntechwebsolutions.com/clients/mobileapp_now/webservice.php");
                                 HttpPost httppost = new HttpPost("http://suntechwebsolutions.com/clients/DGCapp/webservice.php");


                                httppost.setEntity(se);

                                HttpResponse response1 = httpclient.execute(httppost);
                                String data1 = EntityUtils.toString(response1.getEntity());
                                System.out.println("response "+data1);



                                JSONObject jo = new JSONObject(data1);

                                Log.d("response", jo.toString(4));

                                JSONArray jArray = jo.getJSONArray("all_advertisements");  
                                Log.d("Array", jArray.toString(4));

                            /*  JSONObject adv= jo.getJSONObject("advertisement_count");  
                                String advertisement_count = adv.getString("count(*)");
                                System.out.print("advertisemnet"+advertisement_count);  */


                                for (int j=0; j < jArray.length(); j++)
                                {
                                    try {
                                        JSONObject jsob = jArray.getJSONObject(j);

                                        mname = jsob.getString("name");   
                                        mobile = jsob.getString("mbl_nmbr");   
                                        state = jsob.getString("states");   
                                        desc = jsob.getString("desc");   


                                        nameArray.add(jsob.getString("name").toString());

                                        mobileArray.add(jsob.getString("mbl_nmbr").toString());

                                        stateArray.add(jsob.getString("states").toString());

                                        descArray.add(jsob.getString("desc").toString());

                                        HashMap<String, String> adHash = new HashMap<String, String>();

                                        adHash.put("name", jsob.getString("name").toString());

                                        adHash.put("mbl_nmbr", jsob.getString("mbl_nmbr").toString());

                                        adHash.put("states", jsob.getString("states").toString());

                                        adHash.put("desc", jsob.getString("desc").toString());

                                        //adsArray.add(adHash);

                                        //     adapter = new ArrayAdapter<String>(ViewAdvertise.this, R.layout.listrow, stateArray);     

                                    } 
                                    catch (JSONException e) 
                                    {
                                        e.printStackTrace();
                                    } 

                                }


                            }
                            catch (Exception e) 
                            {
                                e.printStackTrace();
                            }
                        }
                        else
                        {
                            final AlertDialog.Builder alert = new AlertDialog.Builder(ViewAdvertise.this);
                            alert.setTitle("Alert !");
                            alert.setMessage("No Internet connection ");
                            alert.setPositiveButton("Ok",
                                    new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,
                                        int whichButton) 
                                {
                                    dialog.dismiss();


                                }
                            });
                            runOnUiThread(new Runnable() 
                            {
                                public void run() 
                                {
                                    //pDialog.dismiss();
                                    alert.show();
                                }
                            });
                        }

                        return params;

                    }             

                    @SuppressLint("NewApi")
                    @Override
                    protected void onPostExecute(String[] result) 
                    {


                        super.onPostExecute(result);
                        //  adapter.clear();
                        /*adapter.notifyDataSetChanged();  */
                        //  adapter.clear();
                        adapter = new ArrayAdapter<String>(ViewAdvertise.this, R.layout.listrow, stateArray);   

                        list.setAdapter(adapter);   

                        adapter.notifyDataSetChanged();



                        //  adapter.addAll(stateArray);



                        /*tv1.setText(desc);
                        tv2.setText(mname);
                        tv3.setText(mobile);
                        tv4.setText(state);*/

                        System.out.print("Original contents of al: ");
                        Iterator<String> itr = nameArray.iterator();
                        while (itr.hasNext()) {
                            String element = itr.next();
                            System.out.print(element + " ");
                        }
                        System.out.println();   


                        System.out.print("Original contents of al: ");
                        Iterator<String> itr1 = stateArray.iterator();
                        while (itr.hasNext()) {
                            String element = itr1.next();
                            System.out.print(element + " ");
                        }
                        System.out.println();   
                        //  ListView lv = getListView();

                        // listening to single list item on click
                        list.setOnItemClickListener(new OnItemClickListener() {
                            int position;

                            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {

                                // selected item 
                                // String product = ((TextView) view).getText().toString();
                                long index = parent.getSelectedItemId();
                                this.position=position;
                                // Launching new Activity on selecting single List Item
                                Intent i = new Intent(getApplicationContext(), ViewAds.class);
                                // sending data to new activity

                                i.putStringArrayListExtra("nameArray", nameArray);
                                i.putStringArrayListExtra("mobileArray", mobileArray);
                                i.putStringArrayListExtra("stateArray", stateArray);
                                i.putStringArrayListExtra("descArray", descArray);

                                //i.putExtra("adArray", adsArray);

                                i.putExtra("position", position);
                                startActivity(i);

                            }
                        });
                    }
                }
            }


log cat Response

    07-08 01:19:39.547: D/response(1434): {
    07-08 01:19:39.547: D/response(1434):     "data": [
    07-08 01:19:39.547: D/response(1434):         {
    07-08 01:19:39.547: D/response(1434):             "id": "53",
    07-08 01:19:39.547: D/response(1434):             "desc": "",
    07-08 01:19:39.547: D/response(1434):             "status": "2",
    07-08 01:19:39.547: D/response(1434):             "name": "vivek",
    07-08 01:19:39.547: D/response(1434):             "states": "",
    07-08 01:19:39.547: D/response(1434):             "mbl_nmbr": "",
    07-08 01:19:39.547: D/response(1434):             "user_id": "45",
    07-08 01:19:39.547: D/response(1434):             "date_time": "2014-07-07 05:16:29"
    07-08 01:19:39.547: D/response(1434):         }
    07-08 01:19:39.547: D/response(1434):     ],
    07-08 01:19:39.547: D/response(1434):     "err-code": "0"
    07-08 01:19:39.547: D/response(1434): }

嘗試這個..

改變這個

JSONArray jArray = jo.getJSONArray("all_advertisements");  

JSONArray jArray = jo.getJSONArray("data");  

因為您的JSONArray鍵是數據而不是all_advertisements,所以請進行更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM