![](/img/trans.png)
[英]What's wrong with this use of java Deflater/Inflater with a dictionary
[英]What's wrong with my TextView Layout Inflater?
我正在嘗試將TextView動態地添加到LinearLayout中,但是出現錯誤並且不知道如何解決:
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;
}
}
Inflater仍然使我感到困惑,我仍然擁有類似的代碼來對表行進行膨脹,然后將它們添加到工作良好的表布局中:/有人可以幫我了解我在做什么錯嗎?
嘗試這樣的事情:
LinearLayout layout1 = (LinearLayout) LayoutInflater.from(mCtx).inflate(R.layout.one_fifty_two_init, null);
如果您在內部類或其他位置(onTouchListener)等無法訪問上下文的環境(即,不能使用關鍵字this),則也可以嘗試:
LinearLayout layout1 = (LinearLayout) LayoutInflater.from(MyActivity.this).inflate(R.layout.one_fifty_two_init, null);
哦,嘗試將XML的TextView封裝成線性布局。
編輯:
嘗試這個:
<?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>
我唯一的想法是,可能是因為您的視圖沒有包裹在充氣機欄桿的布局中。
嘗試這個
TextView sim = (TextView) View.inflate(this,R.layout.paymentrow,null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.