0

これは、Google Maps android api v2 にマーカーを追加するための私のコードです。私の問題は、EditText スニペットから文字列値を取得できないことです。コード .getText().toString() は文字列値を取得できず、null のみを送信します。私を助けてください。

    googlemap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {

        @Override
        public void onMapLongClick(final LatLng latlng) {
            LayoutInflater li = LayoutInflater.from(context);
            final View v = li.inflate(R.layout.alertlayout, null);

            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setView(v);
            builder.setCancelable(false);

            builder.setPositiveButton("Create", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    EditText title = (EditText) v.findViewById(R.id.ettitle);
                    EditText snippet = (EditText) v.findViewById(R.id.etsnippet);
                    String s = title.getText().toString();
                    String ss = snippet.getText().toString();
                    googlemap.addMarker(new MarkerOptions()
                            .title(s)
                            .snippet(ss)
                            .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
                            .position(latlng)
                            );
                }
            });

            //Create Negative button
            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();

                }
            });

            AlertDialog alert = builder.create();
            alert.show();

        }
    });

}
4

2 に答える 2

0

以下のコードを追加

onMapLongClick()

LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.alertlayout, parent, false);
于 2013-03-01T06:53:45.940 に答える
0

これに従う必要がある編集テキスト値のゲッターとセッターを実装していないため、ヌルポインターを取得しています..

  1. レイアウトを適切に膨らませます..

    LayoutInflater mInflater =(LayoutInflater)context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    

    convertView =mInflater.inflate(R.layout.alertlayout,null);

2.その編集テキストの getter と setter を含む ViewHolder クラスを作成します。

  1. convertView.setTag(holder);

  2. holder = (ViewHolder) convertView.getTag(); 取得できるようにホルダーオブジェクトを作成しますholder.get....();

于 2013-03-01T07:15:38.047 に答える