0

这是我在 google maps android api v2 中添加标记的代码。我的问题是我无法从我的 EditText 片段中获取字符串值。代码 .getText().toString() 无法获取字符串值,只发送空值。请帮我。

    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

你得到空指针是因为你没有为你需要遵循这个的编辑文本值实现 getter 和 setter。

  1. 适当地膨胀你的布局,比如..

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

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

2.Crate ViewHolder 类,包含该编辑文本的 getter 和 setter。

  1. convertView.setTag(holder);

  2. 像现在这样创建持有者对象,holder = (ViewHolder) convertView.getTag(); 您可以获得holder.get....();

于 2013-03-01T07:15:38.047 回答