2011-09-27 57 views
0
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和光标

回答

0

我想这个问题是在这里:

assignment = new DbAdapter_Assignment(getBaseContext()); 
assignment.open(); 

更确切地说这里getBaseContext()我认为这是在那里你可以有(即任务id和EMPID不为空,当然,当然思维)问题的唯一线路。搜索getBaseContext()的确切用法。

+0

我改变了getBaseContext()。同样的错误。 taskid和empid不为空。 – user533844

0

你可以试试这个。我想你正在使用标签,并没有得到正确的上下文。你应该在上下文中继续前进,直到找到最后一位家长并尝试完成。

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(); 
+0

没有为我工作。而疯狂的事情是光标与其他选项卡正常工作,而不是默认的。 – user533844

+0

好的。我现在所能想到的是,您可以尝试在视图中设置默认选项卡。私人TabHost tabHost; tabHost.setCurrentTab(TaskDetailTabHome.this); – atzu

+0

我正在使用蜂窝。我可以使用TabHost吗?对于Honeycomb,弃用TabActivity。 – user533844