Включить выбор ListView - Android - PullRequest
0 голосов
/ 08 февраля 2012

У меня возникла странная проблема, я не могу щелкнуть свой вид списка ... Я реализовал его так же, как и раньше, но дело в том, что он не работает.

listTags.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                listTags.setSelection(position);
                Toast.makeText(getParent(), "hello", Toast.LENGTH_LONG).show();
            }
        });

Я расширяю Класс деятельности

и слышу, как я объявляю просмотр списка

listTags = (ListView) viewToLoad.findViewById(R.id.listPack);

слышу, что я сделал в XML

 <ListView
        android:id="@+id/listPack"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="5dip"
        android:layout_marginLeft="5dip"
        android:layout_marginRight="5dip"
        android:layout_weight="1" >
    </ListView>

Это так же нормально, как и везде, я не могу понять, что не так, пожалуйста, помогите мне с этим.

Спасибо

Слушайте код для адаптера

adapter = new KeywordAdapter(getApplicationContext(), id,
                getLNApplication().getKeyworddetail());
listTags.setAdapter(adapter);

My KeywordAdapter class

public class KeywordAdapter extends BaseAdapter {

    public KeywordAdapter(Context context, int id, ArrayList<ArrayList<Keyword>> keywordList) {
        this.context = context;
        if (id >= keywordList.size()) {
            keyWordList = new ArrayList<Keyword>();
        } else
            keyWordList = keywordList.get(id);
    }

    // Implemented methods for BaseAdpter

    public class ViewHolder {
        TextView tagName;
        //.... more code
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        View view = convertView;

        if (view == null) {
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.package_tag_details, null, true);
            holder = new ViewHolder();
            holder.tagName = (TextView) view.findViewById(R.id.tagName);
            //.... more code
            holder.layout = (LinearLayout) view
                    .findViewById(R.id.linearLayout1);
            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }

        holder.tagName.setText(keyWordList.get(position).getName());
        ArrayList<Integer> rank = keyWordList.get(position).getRank();


        @SuppressWarnings("unused")

        holder.tagRank1.setText(rank.get(position));


        //.... more code

        return view;
    }

    public void forceReload() {
        notifyDataSetChanged();

    }
}

Ответы [ 4 ]

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

Какой элемент вы поместили в listView, Сделайте все элементы как android:focusable="false"

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

Просто измените следующее в своем коде.

listTags = (ListView)findViewById(R.id.listPack);

Вы уверены, что android: layout_width поддерживает "match_parent"?Пожалуйста, посмотрите в консоль.Пусть это поможет вам.

0 голосов
/ 08 февраля 2012

Была одна проблема с пользовательским представлением списка Я использовал горизонтальный scrollView в представлении, которое я удалил, и теперь проблема решена

0 голосов
/ 08 февраля 2012

Я не видел, чтобы вы устанавливали адаптер, т.е. listTags.setAdapter (?);

    Try this code (works for me):

    // MainActivity

    public class MainActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

           final ListView listTags = (ListView) findViewById(R.id.listPack);
           listTags.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mStrings));
           listTags.setOnItemClickListener(new OnItemClickListener() {

               @Override
               public void onItemClick(AdapterView<?> parent, View view,
                       int position, long id) {
                   listTags.setSelection(position);
    //               Toast.makeText(getParent(), "hello", Toast.LENGTH_LONG).show();
               }
           });



        }


         private String[] mStrings = {

            "Comte", "Coolea", "Cooleney", "Coquetdale", "Corleggy", "Cornish Pepper",
            "Cotherstone", "Cotija", "Cottage Cheese", "Cottage Cheese (Australian)",
            "Cougar Gold", "Coulommiers", "Coverdale", "Crayeux de Roncq", "Cream Cheese",
            "Cream Havarti", "Crema Agria", "Crema Mexicana", "Creme Fraiche", "Crescenza",
            "Croghan", "Crottin de Chavignol", "Crottin du Chavignol", "Crowdie", "Crowley",
            "Cuajada", "Curd", "Cure Nantais", "Curworthy", "Cwmtawe Pecorino",
           };

    // Main xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/hello" />

        <ListView
            android:id="@+id/listPack"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginBottom="5dip"
            android:layout_marginLeft="5dip"
            android:layout_marginRight="5dip"
            android:layout_weight="1" >
        </ListView>

            </LinearLayout>

    // list_item.xml // layout

    <?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="10dp"
        android:textSize="16sp" >
    </TextView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...