當您嘗試在視圖指定的孩子已經有一個parent.when我做layout.addView(按鈕,params);
mDescriptHelp = (TextView)view.findViewById(R.id.id_descript_help);
mDescriptHelp.setTypeface(mFontUtils.getBentonSansMediumFont());
TelephonyManager manager =
(TelephonyManager)mActivity.getSystemService(Context.TELEPHONY_SERVICE);
if(manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE){
FrameLayout.LayoutParams params =
new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
params.setMargins(800, 290, 10, 0);
layout.addView(mDescriptHelp, params);
}
添加mdescrition我的錯誤是
03-16 06:27:07.452: E/AndroidRuntime(7233): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
我不理解的錯誤。任何想法?我希望有人能幫助我。
你不應該這樣做。 從layout.xml中刪除id_descript_help TextView,並通過編程方式創建該視圖:mDescriptHelp = new TextView(mContext);然後嘗試將其添加到佈局。通過在layout.xml中放置視圖你聲明它的父項並且你不能移動它 – krossovochkin
如果condition(getPhoneType()== PHONE_TYPE_NONE)爲true,那麼你可能想要顯示/隱藏這個TextView,那麼也許你應該嘗試使用mDescriptHelp.setVisibility(View .GONE)隱藏視圖和View.VISIBLE以顯示它 – krossovochkin
我需要這樣做,因爲我必須區分它的平板電腦,如果它是智能手機,我不添加參數 – Cabezas