Текстовое представление показывает только последний элемент из ListView - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь использовать текстовое представление для отображения контакта, который был выбран из списка.Список содержит контакты, которые были выбраны пользователем из телефонной книги Android и загружены в список.В текстовом представлении будет отображаться только последний элемент в списке, даже если пользователь выбрал другой контакт, который не был последним контактом в списке.

Несмотря на то, что в распечатках журнала я вижу, какой контактвыбрал, но он по умолчанию остается последним контактом, когда я пытаюсь распечатать его в текстовом виде в другом окне.

Contacts List Text Display

addModem.java

 display_contacts1.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {

        @Override
        public void onItemClick(AdapterView<?> adapter, View view, int position, long id)
        {
            // TODO Auto-generated method stub
            Object o = adapter.getItemAtPosition(position);
            String str_text = o.toString();

            String name = AddModem.name;
            String phoneNumber = AddModem.phoneNo;

            Log.e("Contacts selected", str_text);

            // Display string here showing which contact was selected
            Toast.makeText(getApplicationContext(), str_text + " Selected for Communication", Toast.LENGTH_LONG).show();

            // Update Modem View Contact
            modemView.setText(str_text);

            //modemView.setText(name);
            arrayAdapter.notifyDataSetChanged();

            // Go back to the main screen after the contact has been selected
            Intent main_menu = new Intent(AddModem.this, MainActivity.class);
            main_menu.putExtra("StrValue", str_text);
            startActivity(main_menu);

        }

    });

MainActivity.java

// This checks to see if the current contact is selected
        if ( display_contacts.isEmpty())
        {
            number = null;

            // No contacts selected from the Add Modem listview
            modemView.setText("No contact selected");
        }
        else
        {
            runOnUiThread(new Runnable()
            {
                // This is not updating to the one selected
                @Override
                public void run()
                {
                    modemView.setText(name);
                    Log.e("DisplayName", name);
                }
            });

        }

1 Ответ

0 голосов
/ 19 марта 2019

В основном коде активности нам нужно было

name = getIntent().getStringExtra("StrValue");

, прежде чем мы распечатали его в textView

modemVide.setText(name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...