这是我在谷歌地图android api v2中添加标记的代码。 我的问题是我无法从EditText片段中获取String值。代码.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();
}
});
}
答案 0 :(得分:0)
在
中添加以下代码onMapLongClick()
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.alertlayout, parent, false);
答案 1 :(得分:0)
你得到空指针,因为你没有为你需要遵循的编辑文本值实现getter和setter ..
正确夸大你的布局......
LayoutInflater mInflater =(LayoutInflater)context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.alertlayout,null);
2.Crate ViewHolder类,包含该编辑文本的getter和setter。
convertView.setTag(holder);
创建像holder = (ViewHolder) convertView.getTag();
这样的持有者对象
现在你可以得到holder.get....();