Android ActionBar和光标
public class TaskDetailTabHome extends Activity implements ActionBar.TabListener{
String taskid, empid, ac;
private DbAdapter_Assignment assignment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tasktab);
taskid = getIntent().getExtras().getString("TaskID");
empid = getIntent().getExtras().getString("EmpID");
ac = getIntent().getExtras().getString("AC");
ActionBar bar = getActionBar();
bar.addTab(bar.newTab().setText("TASK").setTabListener(this));
bar.addTab(bar.newTab().setText("COMMENT").setTabListener(this));
bar.addTab(bar.newTab().setText("FLIGHT").setTabListener(this));
bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_USE_LOGO);
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setDisplayShowHomeEnabled(true);
bar.setDisplayShowTitleEnabled(false);
assignment = new DbAdapter_Assignment(getBaseContext());
assignment.open();
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(tab.getText()== "TASK")
{
setContentView(R.layout.tasktab);
Cursor c = assignment.taskDetails(taskid, empid); ??????????
}
}
我想用SQLite数据制作视图。但是游标正在抛出一个错误(NullPointerException)。当我不使用ActionBar(选项卡)时,相同的游标正在工作。我究竟做错了什么 ?Android ActionBar和光标
我想这个问题是在这里:
assignment = new DbAdapter_Assignment(getBaseContext());
assignment.open();
更确切地说这里getBaseContext()
我认为这是在那里你可以有(即任务id和EMPID不为空,当然,当然思维)问题的唯一线路。搜索getBaseContext()的确切用法。
你可以试试这个。我想你正在使用标签,并没有得到正确的上下文。你应该在上下文中继续前进,直到找到最后一位家长并尝试完成。
public static Context goUp(Activity current){
if(current.getParent()!=null){
current=current.getParent();
goUp(current);
}
return current.getBaseContext();
}
assignment = new DbAdapter_Assignment(goUp(TaskDetailTabHome.this));
assignment.open();
没有为我工作。而疯狂的事情是光标与其他选项卡正常工作,而不是默认的。 – user533844
好的。我现在所能想到的是,您可以尝试在视图中设置默认选项卡。私人TabHost tabHost; tabHost.setCurrentTab(TaskDetailTabHome.this); – atzu
我正在使用蜂窝。我可以使用TabHost吗?对于Honeycomb,弃用TabActivity。 – user533844
我改变了getBaseContext()。同样的错误。 taskid和empid不为空。 – user533844