在我的Android应用程序中,我有一个按钮导致某个活动,在某些情况下,由于if语句而无法启动。
如果我在onCreate上使用.finish();
终止活动,那么当用户点击按钮时没有任何反应。
但我想在当前活动中向用户显示警报,Toast。不确定这是否真的很清楚,但这应该是基本上应该发生的事情:
.finish();
活动被杀死了。到目前为止,这是我的代码:
try {
this.storeMarkerList = new StoreMarkerList(this.mapView);
StoreList list = (StoreList)getBaseApplication().getSessionParameter("selected.storelist", null);
if (list == null || list.size() == 0){
Toast.makeText(???, "No stores", 5000);
this.finish();
}
else {
(...)
答案 0 :(得分:13)
试试这个:
Toast.makeText(getApplicationContext(), "No stores", 5000).show();
答案 1 :(得分:3)
您在Toast.makeText()
之后错过了难以捉摸的#show()
来电。
if (list == null || list.size() == 0){
Toast.makeText(this, "No stores", 5000).show();
this.finish();
}
答案 2 :(得分:2)
如果您在片段中,则可以通过applicationContext
方法保留对getActivity()
的引用。
Context context = getActivity().getApplicationContext(); // Inside a fragment
Toast.makeText(context, context.getResources().getString(R.string.no_content), Toast.LENGTH_SHORT).show();
getActivity().finish();
答案 3 :(得分:1)
Toast留言在Activity
之间仍然存在,所以您需要做的就是:
@Override
onPause()
{
Toast.makeToast("My text", Toast.length_long).show();
super.onPause();
}
类似的东西,虽然我的变量名称可能有些偏差,因为我正在做这件事:“