2013-03-19 47 views
0

我試圖動態的TextView的添加到的LinearLayout,但我得到一個錯誤,不知道如何解決它:我的TextView佈局Inflater有什麼問題?

03-19 16:25:07.057: ERROR/AndroidRuntime(16910): FATAL EXCEPTION: main 
    android.view.InflateException: Binary XML file line #3: Error inflating class <unknown> 
    at android.view.LayoutInflater.createView(LayoutInflater.java:613) 
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:215) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 
    at com.fincalc.financialcalculator.MainActivity.simulateDebtLifeSpan(MainActivity.java:220) 

這裏是一個被引用的XML佈局文件:

<?xml version="1.0" encoding="utf-8"?> 

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

而且我對這個問題的代碼:

public void simulateDebtLifeSpan(CreditCard card){ 
    LinearLayout ll = (LinearLayout)getLayoutInflater().inflate(R.layout.simulatedminimumpayments,null); 
    if (card.balance>0){ 
     -line 215- TextView sim = (TextView)getLayoutInflater().inflate(R.layout.paymentrow,null); 
     double newBalance = card.getBalance()-card.getMinimumPayment(card.getBalance()); 
     sim.setText("Starting Balance: " + card.getBalance() + " Minimum Payment: " + card.getMinimumPayment(actBalance) + " New Balance: " + newBalance); 
     ll.addView(sim); 
     card.setBalance(newBalance); 
     simulateDebtLifeSpan(card); 
     return; 
    }else { 
     setContentView(R.layout.simulatedminimumpayments); 
    return; 
    } 
} 

吹氣的迷惑了我相當多的還是我有一個膨脹的錶行,然後將它們添加到一個類似的代碼表格佈局工作正常:/有人可以幫我理解我做錯了什麼?

回答

0

嘗試是這樣的:

LinearLayout layout1 = (LinearLayout) LayoutInflater.from(mCtx).inflate(R.layout.one_fifty_two_init, null); 

如果你在一個內部類,或其他位置(onTouchListener)等不具有訪問上下文是(即你不能使用關鍵字這個)你也可以嘗試:

LinearLayout layout1 = (LinearLayout) LayoutInflater.from(MyActivity.this).inflate(R.layout.one_fifty_two_init, null); 

哦,並嘗試包裝你的TextView的線性佈局在它的XML。

編輯:

試試這個:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/wrapper_layout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 
<TextView 
    ....your text view params 
/> 
</LinearLayout> 

我唯一的想法是,也許因爲你的觀點不裹布局充氣barfs。

+0

感謝您的想法,我想兩者兼得,但每個人有無法解析的符號。充氣器是主要活動中的一種方法,所以我不認爲這種情況是一個問題。任何其他想法? – Kyle 2013-03-19 21:00:44

+0

嘗試在XML文件的LinearLayout中包裝您的textview,這是我唯一的想法 - 請參閱我的編輯。 – Nathaniel 2013-03-20 19:32:28

0

試試這個

TextView sim = (TextView) View.inflate(this,R.layout.paymentrow,null); 
+0

感謝您的建議,我試過這個並收到了同樣的錯誤 – Kyle 2013-03-19 20:57:56