簡體   English   中英

我的TextView Layout Inflater有什么問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM