敬酒的工作,但警告对话框不工作时,单击TabGroupActiviy itemezed覆盖? [英] Toast Work but Alert Dialog dont work when click itemezed overlay in TabGroupActiviy?
问题描述
这是我的NearMe活动。我在谷歌地图想标记。然后有人点击标记或覆盖我想说明一个警报对话框。从MapGroupActivity这是我的电话MapActivity
This is my NearMe activity. I am wanna markers on google maps. Then somebody click marker or overlay i want to show one alert dialog. This my MapActivity call from MapGroupActivity
public class NearMeActivity extends MapActivity implements OnClickListener {
private Button imgbtn_map_filter;
private MapView mapView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.nearme_layout);
setMapNOverlay();
setUI();
imgbtn_map_filter.setOnClickListener(this);
final TabGroupActivity parentActivity = (TabGroupActivity) getParent();
parentActivity.closeAllChildsExceptLastOne();
}
private void setUI() {
imgbtn_map_filter = (Button) findViewById(R.id.btn_map_filter);
}
private void setMapNOverlay() {
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.balloon);
MyItemizedOverlay itemezedOverlay = new MyItemizedOverlay(drawable,
this);
GeoPoint point = new GeoPoint(19240000, -99120000);
OverlayItem overlayitem = new OverlayItem(point, "Holaaaa! !!",
"Fuck offf");
itemezedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemezedOverlay);
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_map_filter:
//start activity for result da var onlar incelenecek
Intent intent = new Intent(getParent(), TestActivity.class);
TabGroupActivity parentActivity = (TabGroupActivity) getParent();
parentActivity.startChildActivity ("TestActivity", intent);
break;
default:
break;
}
}
}
这是为ItemizedOverlay类。我想显示一个警告对话框。
This is is ItemizedOverlay class. I am trying to show one alert dialog.
public class MyItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
Context mContext;
public MyItemizedOverlay(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}
//bir Overlay'e dokunduğu zaman olaylar olaylar
@Override
protected boolean onTap(int index) {
OverlayItem item =mOverlays.get(index);
AlertDialog.Builder dialog= new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
try{
dialog.show();
}catch(Exception el){
Log.d("Error: ---->" + e.toString)
}
return super.onTap(index);
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
// ne zaman bir overlay eklesek populate methodunu çalıştırmamız
// gerekmektedir. Yen bir overlay
// nesnesi eklemek için
// populate methodu çalıştığı zaman overlay createItem çalıştıracaktır
populate();
}
// eklenen overlay'in yerini verir.
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
// eklenen yeni overlayın seize'ını almamız gerekmektedir
@Override
public int size() {
return mOverlays.size();
}
}
当我是写Toast.makeText(mContext,喇嘛喇嘛,Toast.LENght_LONG).show() - >运行成功
但警告对话框Builder也随之不要在自来水方法的工作。
When i was write Toast.makeText(mContext,"Bla bla",Toast.LENght_LONG).show() --> run successfully but alert dialog buider dont work in tap method.
我正在此错误:
android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌android.app.LocalActivityManager$LocalActivityRecord@40532be8无效;是您的活动运行?
返回super.onTap(指数);
return super.onTap(index);
推荐答案
在NearMeActivity复制此code,
Copy this code in NearMeActivity,
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
switch (id) {
case 0:
return new AlertDialog.Builder(this).setTitle("Hello").setIcon(
R.drawable.ic_launcher).setPositiveButton("Yes",
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog ,
int which) {
// TODO Auto-generated method stub
}
}).setCancelable(true).setNegativeButton("Cancel",
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog ,
int which) {
// TODO Auto-generated method stub
}
})
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Dismiss",
Toast.LENGTH_SHORT).show();
}
}).create();
default:
break;
}
return null;
}
和调用的方法的onTap这种方法在com.google.android.maps.ItemizedOverlay的子类,显示的对话框:
And call this method from onTap method at subclass of com.google.android.maps.ItemizedOverlay to show dialog:
@Override
protected boolean onTap(int index) {
// TODO Auto-generated method stub
switch (index) {
case 0:
showDialog(0);
break;
}
}
这篇关于敬酒的工作,但警告对话框不工作时,单击TabGroupActiviy itemezed覆盖?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!