2013-08-21 36 views
0

列出的代碼工作得很好,但我想要更多。TextView的inflater和Fragmen代碼

@Override 
public View onCreateView(LayoutInflater inflater, 
    ViewGroup container, 
    Bundle savedInstanceState) 
{ 
    Log.i(TAG, "HelpDetailsFragment.onCreateView() getCurrentIndex(): "+getCurrentIndex()); 

    Log.i(TAG, "HelpDetailsFragment.onCreateView() container.getChildCount() first log: "+container.getChildCount()); 

    FrameLayout frameLayout = new FrameLayout(getActivity()); 

    TextView headerText = (TextView) new TextView(getActivity()); 

    // headerText.inflate(getActivity(), R.id.textView1, null); 

    int height = (int) TypedValue.applyDimension(
       TypedValue.COMPLEX_UNIT_DIP, 50, getActivity() 
       .getResources().getDisplayMetrics()); 
    headerText.setHeight(height); 
    headerText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); 
    headerText.setText(HelpScreenData.HELP_HEADERS[getCurrentIndex()]);  

    frameLayout.addView(headerText); 

    return frameLayout; 

}

我試着通過註釋掉線自定義文本外觀更具有一些價值從XML文件。 但這不行,請/有人可以幫忙嗎?

回答

0

首先,不要創建你的佈局!我強烈建議你使用基於XML的佈局。然後在你的onCreateView()方法中膨脹你的XML佈局並返回它。

例子:

@Override 
public View onCreateView(LayoutInflater inflater, 
    ViewGroup container, 
    Bundle savedInstanceState) 
{ 

    View v = inflater.inflate(R.layout.my_layout, null); //my_layout is your layout defined in XML 

    TextView textView = v.findViewById(R.id.my_textview); 
    Button button = v.findViewById(R.id.my_button); 
    //do whatever with your textView, set OnClickListener to button etc...   


    return v; //return inflated layout 
} 

我建議你在Android Dev website閱讀佈局的一些基本教程。

+0

感謝您的回覆,但是這個建議讓我留下了:「AndroidRuntime(615):引發:java.lang.IllegalStateException:指定的子項已經有父項,必須先調用子項父項的removeView() 這是一個消息,我已經有過多年,我不知道要解決它。 – PageMaker

+0

更改此行inflater.inflate(R.layout.my_layout,null);用inflater.inflate(R.layout.my_layout,container,false); – traninho