0

我正在尝试将 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;
    }
}

充气机让我很困惑我仍然有类似的代码可以充气表格行,然后将它们添加到工作正常的表格布局中:/有人可以帮我理解我做错了什么吗?

4

2 回答 2

0

尝试这样的事情:

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);

哦,尝试将您的 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 的布局中。

于 2013-03-19T20:50:42.783 回答
0

尝试这个

TextView sim = (TextView) View.inflate(this,R.layout.paymentrow,null);
于 2013-03-19T20:54:59.990 回答