リストビュー項目のいずれかをクリックすると、クリックされた項目ビュー以外のビューを取得する際に問題に直面しています。クリックしたアイテム ビュー以外の各リスト アイテム ビューからビューを非表示にする必要があります。
以下のコードは、一度に表示される項目 4 または 5 の数が少ない場合は正常に動作しますが、複数の項目が画面よりも多く占有されている場合、問題 (強制終了でクラッシュ - panel1 の初期化時に NullPointerException) が発生します。サイズ。
for(int count = 0; count<listAdapter.getCount(); count++)
{
if(arg2!=count)
{
int visiblePosition = jobList.getFirstVisiblePosition();
View v = jobList.getChildAt(count - visiblePosition);
panel1 = (LinearLayout)v.findViewById(R.id.panel1);
panel1.setVisibility(View.GONE);
}
}
上記のコードでビューの初期化を置き換えました
から
View v = jobList.getChildAt(count - visiblePosition);
に
View v = jobList.getChildAt(count);
ただし、問題は同じです。つまり、現在表示されているアイテムよりも多くのアイテムがある場合に備えて、ビューで NPE を受け取ります。これは、 for loop count < listAdapter.getCount()の条件が間違っているためだと 思います。この問題を解決するには、これを別のものに変更する必要があると思います。
forループ(初期化/条件)で何を変更する必要があるかを提案してください。