0

リストビュー用のアダプターとその言葉がうまくカスタマイズされています。しかし、onclicklistener をカスタム アダプター行ビューのビューに設定すると、onitemclicklistner が機能しません。

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    try{
        if(convertView==null)
        {
            convertView=mInflater.inflate(R.layout.marker_row_view, null);
            holder=new ViewHolder();
            holder.Name=(TextView)convertView.findViewById(R.id.ProeprtyName);
            holder.image=(ImageView)convertView.findViewById(R.id.RightArrow);
            convertView.setTag(holder);
        }
        else
        {
            holder=(ViewHolder)convertView.getTag();
        }

      holder.Name.setText(propertyNames[position]);
      if(selectedPosition == position){
          Log.d("", "selected");
          convertView.setBackgroundColor(Color.BLUE);
          convertView.setBackgroundColor(Color.parseColor("#3B79FF"));
          holder.Name.setTextColor(Color.WHITE);
      }else{
          //convertView.setBackgroundResource(R.drawable.savsearch_bg_district);
          holder.Name.setTextColor(Color.BLACK);
      }
      holder.Name.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Log.d("fdsf", "on");
                Globalclass global = (Globalclass) ((Activity)context).getApplication();
                global.setMarkerTextClick(true);
            }
      });
      holder.image.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Log.d("fdsf", "on");
                Globalclass global = (Globalclass) ((Activity)context).getApplication();
                global.setMarkerTextClick(false);
            }
      });

    }catch (Exception e) {
        e.printStackTrace();
    }

    return convertView;
}

listview onitemclicklisner のコードは

final MarkerInfoAdapter adapter = new MarkerInfoAdapter(PropertyMapList.this, names);
                                final ListView list = (ListView) CustomMarker.findViewById(R.id.listView1);
                                list.setAdapter(adapter);list.setOnItemClickListener(new OnItemClickListener() {

                                    @Override
                                    public void onItemClick(
                                            AdapterView<?> arg0, View arg1,
                                            int arg2, long arg3) {
                                        Log.d("", "fsdfdsfds");
                                        ((MarkerInfoAdapter)adapter).setSelected(arg2);
                                    }
                                });
4

2 に答える 2

0

onClickリスナーに同じコードを追加しているため、行ビューでオンクリックリスナーを使用しても意味がありません。代わりに、onItemClickに次のコードを追加できます

 Globalclass global = (Globalclass) ((Activity)context).getApplication();
   global.setMarkerTextClick(false);

特定のビューをクリックして実装したい場合は、

  • ビューはクリックできません

  • アンドロイド: フォーカス可能 =「false」

  • android:focusableInTouchMode="false"

リストビュー タグに次の属性を追加します。

 android:clickable="true"
 android:descendantFocusability="beforeDescendants"

このリンクはあなたの問題を解決しますAndroid: クリック可能なグリッド項目とネストされたビュー (ボタン、チェックボックス) を備えたグリッド ビュー

于 2013-05-29T08:23:20.677 に答える