2012-06-22 4 views
0

다섯 개의 탭을 호스팅하는 TabInterface.java가 있습니다. 탭 중 하나에서 하위 활동을 사용하고 있습니다. ActivityBook을 확장하는 AddBook 탭을 클릭하면 검색 북 페이지가 제대로로드됩니다. 검색 버튼을 클릭하면 책 목록이 생성됩니다. 책을 클릭하면 새 페이지가 열리지 만 프로그램이 제대로 실행되고 있지만 화면에 아무 것도 표시되지 않습니다.두 번째로 목록보기로 인해 세 번째 하위 작업이 작동하지 않습니다.

TabInterface.java

public class TabInterface extends TabActivity 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.tablayout); 
    Resources res = getResources(); 
    TabHost tabHost = getTabHost(); 
    LocalActivityManager mlam = new LocalActivityManager(this, false); 
    mlam.dispatchCreate(savedInstanceState); 
    ............................................ 
    intent = new Intent().setClass(this, AddBook.class); 
    spec = tabHost.newTabSpec("AddBook").setIndicator("Add Book", res.getDrawable(R.drawable.tab_icons)).setContent(intent); 
    tabHost.addTab(spec); 
    ..............................................` 

AddBook.java

........... 
Intent i = new Intent(this.getBaseContext(), BookList.class); 
replaceContentView("blist", i, getApplicationContext()); 
........ 
public void replaceContentView(String id, Intent newIntent, Context c) 
{ 
    View view = getLocalActivityManager().startActivity(id, newIntent.addFlags(Intent.FLAG_ACTIVITY_CLE AR_TOP)).getDecorView(); 
    this.setContentView(view); 
} 
.......... 

BookList.java

...................... 

private class BookAdapter extends ArrayAdapter <Books> //my custom adater 
................... 
public View getView(final int position, View convertView, ViewGroup parent) 
................... 

//in getView function 
v.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View v) 
    { 
    Intent k = new Intent(getBaseContext(), BookNew.class); 
    AddBook ab = (AddBook) getParent(); 
    ab.replaceContentView("bnew", k, getApplicationContext()); 
    } 
} 

................... 

세 번째 하위 작업 인 BookNew.java가 제대로 실행되고 있지만 출력이 표시되지 않습니다. 탭 없이도 제대로 작동합니다. 내가 틀린 곳을 알 수 있겠 니?

답변

0

이상한 사람 아무도 내 질문에 대답 할 수 없습니다. 약 5-6 일을 보낸 후 나는 해결책을 찾는다. notfyDataSetChanged()를 사용하여 다음 조각을 그리지 않아 표시되지 않는 이유.