Android3.0推出了NativeActivity,也让很多C/CPP的开发者有了发挥余地。
NativeActivity允许Android开发者使用C/C++在NDK环境中处理Activity的生命周期,但是经过好几天的尝试,发现在C的方向还是很难满足UI方面的需求,比如简单的添加一些输入框,或者显示输入法等等。
经过琢磨发现可以通过继承NativeActivity的方法来解决这个问题。
public class CustomNativeActivity extends NativeActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindowManager().addView(view, layoutParams);//view即为需要添加的控件,layoutParams为参数 } }
public class CustomNativeActivity extends NativeActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindowManager().addView(view, layoutParams);//view即为需要添加的控件,layoutParams为参数
}
}
<activity android:name="com.xxx.xxx.CustomNativeActivity"
android:label="@string/app_name"
android:screenOrientation="landscape">
<!-- Tell NativeActivity the name of or .so -->
<meta-data android:name="android.app.lib_name" android:value="hello-jni" />
</activity>
但是这个方法感觉是在整个WindowManager上添加的控件,但是这个也是我现在为止找到的最好的方法了。