setOnItemClickListener для ландшафтного режима - PullRequest
2 голосов
/ 04 ноября 2011

Мое приложение для Android работает в ландшафтном режиме. У меня есть список, который содержит некоторые элементы. Проблема в том, что setOnItemClickListener вызывается только тогда, когда я щелкаю по имени элемента. Я имею в виду, что если я выбираю строку, в которой нет имени элемента, элемент не выбирается, а setOnItemClickListener не вызывается. Что мне делать?

Пожалуйста, помогите мне. Заранее спасибо ..

Вот мой код:

MyListView = (ListView) findViewById(R.id.MyListView);
        MyListView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, playlists));
        MyListView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View v, int position,
                    long id) {
                System.out.println("list touch "+ playlists[position]+" si id "+idPlaylist[position]);
                dialogwait = ProgressDialog.show(Playlist.this, "Loading...","Please wait..", true);

                Intent i = new Intent(getBaseContext(), ViewPlaylist.class);
                i.putExtra("id",idPlaylist[position]);
                i.putExtra("timer",timerPlaylist[position]);
                startActivity(i);
                finish();
            }
        });

Ответы [ 3 ]

0 голосов
/ 04 ноября 2011

чтобы использовать ваше текстовое представление вместо R.layout.simple_list_item_1 создайте ваше текстовое представление и поместите его в

MyListView.setAdapter (новый ArrayAdapter (это, R.layout.mytextview, плейлисты));

0 голосов
/ 10 ноября 2011

Проблема была в том, что у меня было android:layout_width="wrap_content" в ListView. Это основной код для ListView:

 <ListView android:id="@+id/MyListView"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" /> 
0 голосов
/ 04 ноября 2011

, если вы надуете какое-либо представление для элементов в списке, установив ширину и высоту в xml-макете до fill_parent, это может решить вашу проблему,

также не используйте android.R.layout.simple_list_item_1, потому что вы не можете его изменить...

вы можете сделать

MyListView = (ListView) findViewById(R.id.MyListView);
        MyListView.setAdapter(new ArrayAdapter<String>(this,
                R.layout.mylistitem, playlists));
        MyListView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View v, int position,
                    long id) {
                System.out.println("list touch "+ playlists[position]+" si id "+idPlaylist[position]);
                dialogwait = ProgressDialog.show(Playlist.this, "Loading...","Please wait..", true);

                Intent i = new Intent(getBaseContext(), ViewPlaylist.class);
                i.putExtra("id",idPlaylist[position]);
                i.putExtra("timer",timerPlaylist[position]);
                startActivity(i);
                finish();
            }
        });

, тогда R.layout.mylistitem может быть

<TextView android:id="@+id/sometitle"
        android:layout_width="fill_parent"
        android:layout_height="some_height_you_want" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...