2013-03-19 46 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