Cocos2dx移植到Android平台过程中,需要显示Android提示框,下面说一下我的实现过程
1.C++方面,使用JNI调用Java的函数。关于JNI的知识,百度上有很多,这里不做叙述
2.Java方面,使用AlertDialog创建一个提示框,我用到的是列表框,关于其他提示框的创建,基本大同小异,请自行百度
3.尼玛,全都是自行百度,你到底要说什么
4.列位不要捉急,真正值钱的东西在这呢,往这边看:
5.先附上创建列表框的代码:
static public void showItems()
{
final String[] m_Items = {"item1","item2"};
AlertDialog.Builder m_build = new AlertDialog.Builder(sContext);
m_build.setTitle("请选择类型");
OnClickListener onclick = new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
Log.i("selectID","SelectID is %d"+which);
//MyJavaToCpp.CppCallback("Payment"+ "," + which);
// 这里执行你自己的函数
}
};
m_build.setItems(m_Items, onclick );
m_build.show();
}
5.如果你发现,你一调用这个showItems函数,程序就崩溃了,Eclipse报错:Can't create handle inside thread that has not called Looper.prepare()
6.哦!这样直接调用是不可以的,解决方法如下:
static public void showItems_Pro()
{
((Cocos2dxActivity)sContext).runOnUiThread(new Runnable() {
public void run() {
showItems()//上面的提示框创建函数
}
});
}