2011-09-27 77 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