我正在开发一个基于Processing的 Android 应用程序
我想在按下菜单按钮时显示两个带有一些内容的固定选项卡。
Tab1 将包含一些设置,也许帮助按钮 T
ab2 应该有一个 ListView 来显示预设列表。现在,为了简单起见,我正在尝试创建两个 TextView。
我正在尝试使用KetaiList
的 Ketai 库的方法
所以有一个内部类扩展了我的应用程序扩展的 PApplet 类中的 TabHost:
public class MyProcessingApp extends PApplet {
public void setup() {
}
public void draw() {
}
public void keyPressed() {
if (key == CODED) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
TabHost th = new GBTab(this);
}
}
}
public class GBTab extends TabHost {
private PApplet parent;
TabHost self;
TabWidget tab1, tab2;
LinearLayout layout;
public GBTab(PApplet _parent) {
super(_parent.getApplicationContext());
parent = _parent;
init();
}
public void init() {
println("GBTab init");
self = this;
layout = new LinearLayout(parent);
TabSpec settingsSpec = self.newTabSpec("SETTINGS").setContent(
new TabContentFactory() {
public View createTabContent(String tag) {
TextView tv = new TextView(parent);
tv.setText("SETTINGS!");
return tv;
}
}
)
.setIndicator("SETTINGS");
self.addTab(settingsSpec);
TabSpec presetsSpec = self.newTabSpec("PRESETS").setContent(
new TabContentFactory() {
public View createTabContent(String tag) {
TextView tv = new TextView(parent);
tv.setText("PRESETS!");
return tv;
}
}
)
.setIndicator("PRESETS");
self.addTab(presetsSpec);
self.setCurrentTab(0);
parent.runOnUiThread(new Runnable() {
public void run() {
parent.addContentView(self, new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT));
}
}
);
}
}
}
将选项卡添加到 TabHost 时,此代码会给出 NullPointerException。
self.addTab(settingsSpec);
因为 self 为空。
这是一种有效的方法吗?
谢谢