2016-11-11 4 views
0

を使用してエラー膨らまクラス だから私は、このエラーメッセージが出ます:MainActivity.java バイナリXMLファイルの行#:ArrayAdapterとAsyncTask

public void onWindowFocusChanged(boolean hasFocus) { 
    ... 
    loadBalanceTable(inThePast, inTheFuture); 
    ... 
} 

private void loadBalanceTable(Calendar startDate, Calendar endDate) { 
    AsyncBalanceLoader asyncBalanceLoader = new AsyncBalanceLoader(getApplicationContext(), this); 
    asyncBalanceLoader.execute(startDate, endDate); 
} 

AsyncBalanceLoader.java

public class AsyncBalanceLoader extends AsyncTask<Calendar, Integer, ArrayList<Balance>> { 

    private Context context; 
    private AppCompatActivity activity; 
    private ListView balanceView; 

    public AsyncBalanceLoader(Context ctx, AppCompatActivity act) { 
     context = ctx; 
     activity = act; 
    } 

    @Override 
    protected ArrayList<Balance> doInBackground(Calendar... date) { 
     ... 
     ArrayList<Balance> arrayListBalance = new ArrayList<Balance>(); 
     ... 
     return arrayListBalance; 
    } 

    @Override 
    protected void onPostExecute(ArrayList<Balance> arrayListBalance) { 
     BalanceArrayAdapter balanceArrayAdapter = new BalanceArrayAdapter(context, arrayListBalance); 
     balanceView.setAdapter(balanceArrayAdapter); 
    } 
} 

... 
android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class <unknown> 
Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class <unknown> 
Caused by: java.lang.reflect.InvocationTargetException 
... 

BalanceArrayAdapter.java

public class BalanceArrayAdapter extends ArrayAdapter { 

    public BalanceArrayAdapter(Context context, ArrayList<Balance> balance) { 
     super(context, 0, balance); 
    } 

    @NonNull 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ... 
     if (convertView == null) { 
      convertView = LayoutInflater.from(getContext()).inflate(
       R.layout.single_balance_line, parent, false); 
     } 
     ... 
     return convertView; 

    } 
} 

問題は、このすべては、ユーザーインターフェイススレッドで行われていたとき、私は何の問題も戻って持っていなかったときBalanceArrayAdapter.javaをライン

convertView = LayoutInflater.from(getContext()).inflate(
        R.layout.single_balance_line, parent, false); 

に表示されます。

何が起こっているかに関するアイデアはありますか? 事前に感謝します!

答えて

0

私は、全体のプロセスは、以前のバージョンで(UIスレッドで実行されていましたされたときに変なふうに、このXMLレイアウトファイルが適切に膨張なっていたエラーコード

... 
android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class <unknown> 
... 

を解剖することによって、エラーの原因となったものを見つけましたプログラム);しかし、AsyncTask拡張クラスAsyncBalanceLoaderonPostExecute()で膨らんでいたとき、UIスレッドでもエラーが発生しました。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal"> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_height="wrap_content" 
      android:layout_width="0dp" 
      android:layout_weight="1"> 

      ... 

     </LinearLayout> 

     ... 

    </LinearLayout> 
</LinearLayout> 

LinearLayoutがやっている何もないと、最初の1(別称、ルートビュー)のみ、一人の子供を含むLinearLayoutグループビューの目的を挑むされています。ここでは、問題のxmlファイルです。

だから、私は本当に言うところの「エラー」がどこにあるのかは分かりませんが、これが原因です。

私はそれを変更:うまくいけば、誰かが本当の原因の以降で、深さを説明します

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="1"> 

     ... 

    </LinearLayout> 

    ... 

</LinearLayout> 

関連する問題