Не могу выбрать данные случайным образом из списка - PullRequest
0 голосов
/ 29 марта 2012

У меня есть 2 действия.

Первая операция - это операция, которая анализирует данные JSON с сервера на ListView, а вторая - операция, которая отображает данные из выбранных значений в * 1004.*.

Вот метод onClick моего 1-го действия:

/**
     * Updating parsed JSON data into ListView
     * */
    ListAdapter adapter = new SimpleAdapter(this, userList,
            R.layout.listitemviewall,
            new String[] { "namaresto", "alamatresto"}, 
            new int[] {R.id.name, R.id.address});

    setListAdapter(adapter);

    /**
     * select resto
     */

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

            /** 
             * move to the next activity 
             * */

            String namanya = ((TextView) findViewById(R.id.name)).getText().toString();
            String alamatnya = ((TextView) findViewById(R.id.address)).getText().toString();

            //Starting a new Intent
            Intent nextScreen = new Intent(getApplicationContext(), InfoTab.class);

            //Sending data to another Activity
            nextScreen.putExtra("name", namanya);
            nextScreen.putExtra("address", alamatnya);

            // starting new activity
            startActivity(nextScreen);


         }
    });

А вот второе действие:

TextView txtname = (TextView) findViewById(R.id.textTEST1);
TextView txtaddress = (TextView) findViewById(R.id.TextTEST2);



    //displaying data from previous activity
    Intent i = getIntent();
    // Receiving the Data
    String name = i.getStringExtra("name");
    String address = i.getStringExtra("address");

    // Displaying Received data
    txtname.setText(name);
    txtaddress.setText(address);

Результат, второе действиевсегда отображает первую запись!Даже если я щелкнул второй или другой записи в ListView.

Как я могу получить мой код для отображения правильной записи, выбранной в ListView?

Ответы [ 2 ]

0 голосов
/ 29 марта 2012

Вы не выбираете правильные данные в onItemClick. Вы можете извлечь объект из списка, представляющего эту строку, выполнив parent.getItemAtPosition (position); внутри onItemClick. Это даст вам объект в списке, который вы предоставили адаптеру, который соответствует этой строке.

0 голосов
/ 29 марта 2012

попробуйте изменить эти строки:

   String namanya = ((TextView) findViewById(R.id.name)).getText().toString();
        String alamatnya = ((TextView) findViewById(R.id.address)).getText().toString();

на:

    String namanya = ((TextView) view.findViewById(R.id.name)).getText().toString();
        String alamatnya = ((TextView)  view.findViewById(R.id.address)).getText().toString();

скажите, работает ли это для вас ...

...