我正在尝试创建一个Android应用程序,在获得未接来电后会显示弹出菜单。
我正在使用BroadcastReceiver
收听电话状态,PhoneStateListener
检查是否有未接来电,但如何在接到未接来电后提示弹出菜单? :
我尝试使用PopupMenu
课程,但我不知道该怎么放入查看参数。
我尝试了以下代码,但它没有起作用:
package com.example.contact;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.Toast;
public class GetText extends BroadcastReceiver {
Context con;
@Override
public void onReceive(Context context, Intent arg1) {
con = context;
View v = new View(context);
Toast.makeText(context, "Got The message", Toast.LENGTH_LONG).show();
PopupMenu popup = new PopupMenu(context,v);
popup.getMenuInflater().inflate(R.menu.main, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(con,
"You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT)
.show();
return true;
}
});
}
}
有谁能告诉我解决这个问题的方法...... 先感谢您
<小时/> 修改 * 对话类: *
import android.app.Activity;
import android.os.Bundle;
public class Dialog extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
}
}
在我的清单中:
<activity
android:name="com.example.contact.Dialog"
android:theme="@android:style/Theme.Dialog" >
</activity>
我是以错误的方式做的吗?如果是的话,请纠正我......
答案 0 :(得分:0)
我做了一些非常类似的收到的短信。而不是PopupMenu
,请使用主题为Activity
的对话框。
在您的清单中,将以下内容添加到<activity>
代码中:
android:theme="@android:style/Theme.Dialog"
然后,在onReceive()
方法中,使用Intent启动Activity:
Intent intent = new Intent(context, MenuActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
这也可以让您更好地控制后续功能。