0

Android アプリケーションに Json 解析を使用しています。ローカル ホストには 10 個を超える php ファイルがあり、Android アプリケーションで対応する名前のリスト ビューとして表示されます。最初のものをクリックすると、アプリは最初の php ファイルに名前でアクセスします。JSON 解析は、最初の php ファイルに対して正常に機能します。説明、画像、動画は順調に進んでいます。しかし、2 番目 (「kannur」) またはその他の項目をクリックすると、2 番目の php ファイルが実行されますが、最初の php ファイル (kasargod) が検索されます。

エンディングに添付されたLogcatのスクリーンショット。

public class CustomizedListView extends Activity {


    // All static variables

    // JSON node keys
    public static int pos ;
    static final String KEY_ROOT = DistrictActivity.dist;
    static final String KEY_ID = "id";
    static final String KEY_DISTRICT = "district_name"; // parent n
    static final String KEY_PLACE = "place_name";
    static final String KEY_DESCRIPTION = "description";
    public static final String KEY_IMAGE = "image_url";
    public static final String KEY_THUMB_URL = "thumnail";
    public static String address="http://10.0.2.2/tour/";

    GridView list;
    LazyAdapter adapter;
    JSONArray contacts;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 

        Bundle extras = getIntent().getExtras();

            final String newString = extras.getString("STRING_I_NEED");


            final String URL = address+newString+".php";

            System.out.println(URL);


        ArrayList<HashMap<String, String>> placesList = new ArrayList<HashMap<String, String>>();
        // Creating JSON Parser instance
        JSONParser jParser = new JSONParser();

        // getting JSON string from URL



        JSONObject json = jParser.getJSONFromUrl(URL);

        try {
            // Getting Array of Contacts
             contacts = json.getJSONArray(KEY_ROOT);

            // looping through All Contacts
            for(int i = 0; i < contacts.length(); i++){
                JSONObject c = contacts.getJSONObject(i);

                // Storing each json item in variable
                String id = c.getString(KEY_ID);
                String district = c.getString(KEY_DISTRICT);
                String place = c.getString(KEY_PLACE);
                String thumnail = c.getString(KEY_THUMB_URL);
                String image_url= c.getString(KEY_IMAGE);


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

                // adding each child node to HashMap key => value
                map.put(KEY_ID, id);
                map.put(KEY_DISTRICT, district);
                map.put(KEY_PLACE, place);
                map.put(KEY_THUMB_URL, thumnail);
                map.put(KEY_IMAGE, image_url);


                // adding HashList to ArrayList
                placesList.add(map);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

スクリーンショット - > https://www.dropbox.com/s/8dd2l8qcj4lslsj/stack.png

ilovepjs==> KEY_ID は単なる連続した数字です。新しい文字列には、リスト ビューで行われた対応するクリックが含まれており、値は Kasargod、kannur などです (これらはケララ州、インドの地区です)。php ファイルは同じ名前です。そして、それにはエラーはありません(すべての地区の説明と画像を取得しますが、最初にクリックしたものだけが値を返します。戻ってリストビューで他の地区をクリックしても何も起こりません!)。添付の Logcat のスクリーンショットから問題を理解できます。

4

1 に答える 1