2

私は現在、この1つの問題を抱えています。このため、このページを参照する必要があるため、他に何もできません。誰かが私が犯した間違いを指摘していただければ幸いです。

前のページ (リスト) のボタンが ID パラメータをページ (詳細) に渡す特定の製品の詳細を表示したかったのです。Java コードまたは PHP コードにエラーはありません。Logcatはそれに応じて結果を表示するため、これについて確信があります(どこにでもログを追加したため)。しかし、エミュレーターではページが空です。レイアウトが他のページと同じように設計されているため、なぜこれが起こるのかわかりません。コードが必要な場合は、以下のとおりです。

Java コード: list.java

ListView lv = getListView();

    lv.setOnItemClickListener(new OnItemClickListener() {

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

            String pid = ((TextView) view.findViewById(R.id.pid)).getText()
                    .toString();

            // Starting new intent
            Intent in = new Intent(getApplicationContext(),
                    details.class);
            // sending pid to next activity
            in.putExtra(TAG_PID, pid);

            // starting new activity and expecting some response back
            startActivity(in);
        }
    });

Java コード: details.java

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_book_details);


        Intent i = getIntent();

        // getting product id (pid) from intent
        pid = i.getStringExtra(TAG_PID);

        Log.d("pid is:",pid);

        new GetProductDetails().execute();

    }

 class GetProductDetails extends AsyncTask<String, String, String> {


        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(Details.this);
            pDialog.setMessage("Loading. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        protected String doInBackground(String... params) {


            runOnUiThread(new Runnable() {
                public void run() {

                    int success;
                    try {
    List<NameValuePair> params = new ArrayList<NameValuePair>();
               params.add(new BasicNameValuePair("pid", pid));

JSONObject json = jParser.makeHttpRequest(url_product_details, "GET", params);


   Log.d("Single Product Details", json.toString());


                        success = json.getInt(TAG_SUCCESS);
                        if (success == 1) {
JSONArray productObj = json.getJSONArray(TAG_BOOK); 
        int i = productObj.length();    //line 1

JSONObject product = productObj.getJSONObject(i);

String title = "Title : "+ product.getString(TAG_TITLE);
    String description = product.getString(TAG_DESCRIPTION);


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


map.put(TAG_TITLE, title);
map.put(TAG_DESCRIPTION, description);                              

eventsList.add(map);

Log.d("Title", title);
Log.d("Description", description);
            }   
}
        protected void onPostExecute(String file_url) {
            pDialog.dismiss();
            runOnUiThread(new Runnable() {
                public void run() {

ListAdapter adapter = new SimpleAdapter(
            Details.this, eventsList,
R.layout.list_item2, new String[] { TAG_PID, TAG_TITLE, TAG_DESCRIPTION},
    new int[] { R.id.pid, R.id.title, R.id.description });                  
                    setListAdapter(adapter);
                }
            });
        }
    }

レイアウト: details.xml

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

<ListView
    android:layout_marginTop="70dp"
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginLeft="20dp"/>
</LinearLayout>

ログキャット:

04-15 00:05:28.005: D/All Products:(4345): {"success":1,"books":[{"author":"Agnesh","category":"Fiction","title":"The Immortals of Shiva","pid":"1","price":"150","description":"Life of Shiva","discount":"20%"},{"author":"Chetan Bhagat","category":"Drama","title":"3 Mistakes of My Life","pid":"14","price":"180","description":"Story of a 3 friends and their destiny","discount":"30%"},{"author":"Chetan Bhagat","category":"Comedy","title":"Two States","pid":"15","price":"175","description":"Love Story","discount":"5%"},{"author":"Charles Darwin","category":"Personality Developm","title":"How to win friends","pid":"16","price":"250","description":"Building your confidence","discount":"10%"},{"author":"Paulo Coelho","category":"Science Fiction","title":"Alchemist","pid":"17","price":"300","description":"In search of Gold","discount":"20%"},{"author":"Vivekananda","category":"Social Awareness","title":"Call to the Nation","pid":"18","price":"100","description":"Knowing yourself","discount":"5%"}]}
04-15 00:05:29.675: D/pid is:(4345): 18
04-15 00:05:30.995: D/Single Product Details(4345): {"book":[{"author":"Vivekananda","category":"Social Awareness","title":"Call to the Nation","pid":"18","price":"100","description":"Knowing yourself","discount":"5%"}],"success":1}
04-15 00:05:31.000: W/System.err(4345): org.json.JSONException: Index 1 out of range [0..1)
04-15 00:05:31.005: W/System.err(4345):     at org.json.JSONArray.get(JSONArray.java:263)
04-15 00:05:31.005: W/System.err(4345):     at org.json.JSONArray.getJSONObject(JSONArray.java:480)
04-15 00:05:31.005: W/System.err(4345):     at com.spyraa.store.Details$GetProductDetails$1.run(Details.java:104)
04-15 00:05:31.005: W/System.err(4345):     at android.os.Handler.handleCallback(Handler.java:587)
04-15 00:05:31.005: W/System.err(4345):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-15 00:05:31.005: W/System.err(4345):     at android.os.Looper.loop(Looper.java:130)
04-15 00:05:31.010: W/System.err(4345):     at android.app.ActivityThread.main(ActivityThread.java:3691)
04-15 00:05:31.010: W/System.err(4345):     at java.lang.reflect.Method.invokeNative(Native Method)
04-15 00:05:31.010: W/System.err(4345):     at java.lang.reflect.Method.invoke(Method.java:507)
04-15 00:05:31.010: W/System.err(4345):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
04-15 00:05:31.010: W/System.err(4345):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
04-15 00:05:31.015: W/System.err(4345):     at dalvik.system.NativeStart.main(Native Method)
04-15 00:05:31.020: D/AndroidRuntime(4345): Shutting down VM
04-15 00:05:31.020: W/dalvikvm(4345): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
04-15 00:05:31.030: E/AndroidRuntime(4345): FATAL EXCEPTION: main
04-15 00:05:31.030: E/AndroidRuntime(4345): java.lang.NullPointerException
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.widget.SimpleAdapter.getCount(SimpleAdapter.java:93)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.widget.ListView.setAdapter(ListView.java:485)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.app.ListActivity.setListAdapter(ListActivity.java:265)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at com.spyraa.store.Details$GetProductDetails$2.run(Details.java:166)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.app.Activity.runOnUiThread(Activity.java:3743)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at com.spyraa.store.Details$GetProductDetails.onPostExecute(Details.java:156)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at com.spyraa.store.Details$GetProductDetails.onPostExecute(Details.java:1)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.os.AsyncTask.finish(AsyncTask.java:417)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.os.AsyncTask.access$300(AsyncTask.java:127)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.os.Looper.loop(Looper.java:130)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at android.app.ActivityThread.main(ActivityThread.java:3691)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at java.lang.reflect.Method.invokeNative(Native Method)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at java.lang.reflect.Method.invoke(Method.java:507)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
04-15 00:05:31.030: E/AndroidRuntime(4345):     at dalvik.system.NativeStart.main(Native Method)

新しい logcat:

04-15 01:37:50.695: D/pid is:(8773): 18
04-15 01:37:52.285: D/Single Product Details(8773): {"book":[{"author":"Vivekananda","category":"Social Awareness","title":"Call to the Nation","pid":"18","price":"100","description":"Knowing yourself","discount":"5%"}],"success":1}
04-15 01:37:52.295: D/AndroidRuntime(8773): Shutting down VM
04-15 01:37:52.295: W/dalvikvm(8773): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
04-15 01:37:52.305: E/AndroidRuntime(8773): FATAL EXCEPTION: main
04-15 01:37:52.305: E/AndroidRuntime(8773): java.lang.NullPointerException
04-15 01:37:52.305: E/AndroidRuntime(8773):     at com.spyraa.bookstore.BookDetails$GetProductDetails$1.run(BookDetails.java:127)
04-15 01:37:52.305: E/AndroidRuntime(8773):     at android.os.Handler.handleCallback(Handler.java:587)
04-15 01:37:52.305: E/AndroidRuntime(8773):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-15 01:37:52.305: E/AndroidRuntime(8773):     at android.os.Looper.loop(Looper.java:130)
04-15 01:37:52.305: E/AndroidRuntime(8773):     at android.app.ActivityThread.main(ActivityThread.java:3691)
04-15 01:37:52.305: E/AndroidRuntime(8773):     at java.lang.reflect.Method.invokeNative(Native Method)
04-15 01:37:52.305: E/AndroidRuntime(8773):     at java.lang.reflect.Method.invoke(Method.java:507)
04-15 01:37:52.305: E/AndroidRuntime(8773):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
04-15 01:37:52.305: E/AndroidRuntime(8773):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
04-15 01:37:52.305: E/AndroidRuntime(8773):     at dalvik.system.NativeStart.main(Native Method)
04-15 01:38:00.015: I/Process(8773): Sending signal. PID: 8773 SIG: 9

どうもありがとうございます!

4

1 に答える 1