2011-02-09 7 views
0

어떻게 레이아웃을 몇 개 만들 수 있으며 하나의 Tabactivity에서 만들 수 있습니까?하나의 Tabactivity에서 다중 레이아웃

아래 코드를 사용해 보았지만 오류가 발생하지 않았습니다.

tabHost.addTab(tabHost.newTabSpec("Sales Order").setIndicator("Sales Order").setContent(R.layout.frm_txn_so_item_list)); 

확인을 명확하게 설명하겠습니다.

아래 코드는 4 탭 레이아웃 페이지가 있습니다. 그것의 각각에는 그것의 자신의 활동 종류가있다. cls_so_item_list.class에 속하는 버튼이 있는데, 언제든지 cls_so에서 호출하려고 할 때마다 항상 null 값을 반환합니다.

그래서 모든 탭 페이지 (item, product, summary, Report) 활동 클래스를 제거하고 cls_so 인 하나의 독립 실행 형 클래스를 작성했습니다.

제 질문은 어떻게 레이아웃 페이지를 tabHost.addTab에 넣을 수 있습니까? 감사합니다

public class cls_so extends TabActivity implements OnClickListener { 
    protected TabHost tabHost; 

    int intSalesOrderId; 
    src_txn_so.cls_so_obj objSalesOrder; 
    static final String LIST_ID = "list_id"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     tabHost = getTabHost(); 

     newTabIntent("Item", null, cls_so_item_list.class); 
     newTabIntent("Product", 
       getResources().getDrawable(R.drawable.so_product), 
       cls_so_prd_list.class); 
     newTabIntent("Summary", 
       getResources().getDrawable(R.drawable.so_summary), 
       cls_so_summary.class); 
     newTabIntent("Report", 
       getResources().getDrawable(R.drawable.so_report), 
       cls_so_summary.class); 


     Button btnSOLineDiscount = (Button) findViewById(R.id.txn_so_btn_line_discount); 
     btnSOLineDiscount.setOnClickListener(this); 

     tabHost.setCurrentTab(0); 
    } 

    protected void newTabIntent(String label, Drawable icon, Class<?> pageClass) { 
     TabSpec tabSpec = tabHost.newTabSpec(label); 
     tabSpec.setIndicator(label, icon); 

     Intent SOIntent = new Intent().setClass(this,pageClass); 
     SOIntent.putExtra(LIST_ID, -1); 

     tabSpec.setContent(new Intent(this, pageClass)); 
     tabHost.addTab(tabSpec); 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 


} 
+1

있다 ..? –

+0

몇 가지 레이아웃을 만들 수 있으며 하나의 Tabactivity에서 만들 필요가 있습니까 ?? 이것의 의미는 무엇입니까? 설명해 주시겠습니까? –

+0

1. 내 대답을 시도 했습니까? 2. 수업에 이름을 짓는 것에 대해 들어 본 적이 있습니까? 3. 질문에 정보를 추가하려면 대답을 게시하지 말고 질문을 편집하십시오. –

답변

0

그것은 그렇게 작동하지 않습니다. 기본 레이아웃에서 FrameLayout의 id에 tabcontent를 추가하고 해당 레이아웃을 가리키는 요소 <include>을 추가합니다.

코드에서 코드를 변경해야합니다.

tabHost.addTab(tabHost.newTabSpec("Sales Order").setIndicator("Sales Order").setContent(R.id.my_included_layout)); 

당신이 있다면 <include> 당신이 더 많은 정보를 제공하시기 바랍니다 수있는 ID "@+id/my_included_layout"

관련 문제