Пользовательская проблема с просмотром списка - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть Custom Listview, но я сталкиваюсь со странной проблемой, когда я нажимаю на один элемент: он реагирует только когда я нажимаю на текст, он не работает на весь «прямоугольник»

это мой listelement.xml

<?xml version="1.0" encoding="utf-8"?>


<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="20dip"
/>

и это код Java:

public class TabFragment5 extends ListFragment {
/** (non-Javadoc)
 * @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
 */
String[] month ={
           "January                     ", 
           "February", 
           "March", 
           "April",
           "May", 
           "June", 
           "July", 
           "August",
           "September", 
           "October", 
           "November", 
           "December"
         };



         @Override
         public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          ListAdapter myListAdapter = new ArrayAdapter<String>(
            getActivity(),
            R.layout.listelement,
            month);
          setListAdapter(myListAdapter);
         }

         @Override
         public View onCreateView(LayoutInflater inflater, ViewGroup container,
           Bundle savedInstanceState) {
          return inflater.inflate(R.layout.tab_frag5_layout, container, false);
         }

         @Override
         public void onListItemClick(ListView l, View v, int position, long id) {
          // TODO Auto-generated method stub
          Toast.makeText(
            getActivity(), 
            getListView().getItemAtPosition(position).toString(), 
            Toast.LENGTH_LONG).show();
         }
        }

Не берите в голову глупую программу, сейчас я просто запускаю учебник. Любые советы о том, как заставить его работать на весь прямоугольник элемента списка? Спасибо

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

ListFragment уже содержит ListView, поэтому вам может не понадобиться раздувать макет из onCreateView, если вы не создаете собственный макет, в котором есть ListView. Я полагаю, ваша проблема в макете для tab_frag5_layout. То, во что вы помещаете ListView, вероятно, уменьшает ширину ListView.

Объединение ваших onCreate и onCreateView в реализацию onActivityCreated сработало для меня.

@Override
public void onActivityCreated(Bundle savedInstanceState)
{          
  super.onActivityCreated(savedInstanceState);

  ListAdapter myListAdapter = new ArrayAdapter<String>(
        getActivity(),
        R.layout.listelement,
        month);
  setListAdapter(myListAdapter);

}

1 голос
/ 10 февраля 2012

Добавьте туда представление, которое заполняет родительский элемент, поскольку единственный объект в списке - это TextView, единственное, что вы можете нажать, попробуйте что-то вроде этого:

<LinearLayout android:id="@+id/linearLayout1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">


        <TextView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/text1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="15dip"
            android:textSize="25sp"/>

    </LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...